问一个关于数据结构的小问题

来源:百度知道 编辑:UC知道 时间:2024/04/28 02:36:19
对高手应该很简单,因为这是我第一次实验作业orz
说是建个书库其实就是一个链表
可以增加可以删除查询之类的……其他的都还成
可是写删除的算法总是有错误,我怀疑我指针用错了
下面就是我关于删除算法的描述,像定义链表之类的就先略了
void ListDelete(){
int i,n;
LNode *p,*q;
p=L;
printf("请输入删除书的位置:");
scanf("%d",&n);
if(n>n1||n<=0)
{
printf("输入错误!");
getch();
}
else{
for(i=1;i<=n;i++)
{
q=p;
p=p->next ;

if(i==n)
{
q->next=p->next;
free(p);
n1--;
printf("已将原表中第%d个书的信息删除!",n);
}
getch();}
}
}
以上……如果我把free(p);注释掉就不会出错……可是一加上就不行……可是不加不是删除不了吗……orz
高手指教

那个for循环有些问题,按说它的作用就是找到用户输入的书所在的结点。
然后对它进行删除。
但是从你的程序上来看,它的作用好像不是这样的。
还有你的链表的结构应该给出来,好让我们来分析的。