读书人

关于链表删除操作,该如何处理

发布时间: 2012-02-17 17:50:42 作者: rapoo

关于链表删除操作
#include <stdio.h>
typedef int ElemType;
typedef struct lnode{
ElemType element;
struct lnode *next;
}lnode, *LinkList;

int length(LinkList l)
{
LinkList p=l;
int count=0;
if (p==NULL) return count;
else {
while (p!=NULL) {
count++;
p=p-> next;
}
return count;
};
return -1;
}

int del(LinkList l,int pos)
{
LinkList p=l;
LinkList t;
if(pos> length(l)) return -1;
else {
while (pos> 2) p=p-> next;
t=p-> next;
p-> next = t-> next;
free(t);
return 0;
}
}

如此写的del函数编译通过
执行的时候程序就死掉了~~
望指教~
执行的时候链表非空~

[解决办法]
while (pos> 2) p=p-> next;/*死循环*/
LZ是不是写错了???

读书人网 >C语言

热点推荐