读书人

逆位序建立单链表解决方法

发布时间: 2013-11-25 13:22:27 作者: rapoo

逆位序建立单链表

void CreateList(LinkList &L, int n)
{
// 逆序输入 n 个数据元素,建立带头结点的单链表
int i;
L = (LinkList) malloc (sizeof (LNode));
if(!L)
exit(-2);
L->next = NULL; // 先建立一个带头结点的单链表
for (i = n; i > 0; --i)
{
LinkList p;
p = (LinkList) malloc (sizeof (LNode));
scanf("%c",&p->data); // 输入元素值
p->next = L->next;
L->next = p; // 插入
}
} // CreateList

如图,假设头结点空间分配成功,在For循环中第m个元素空间分配失败,我想调用if(!L) exit(-2);请问调用这句代码之前,前m-1个元素的空间需要再写代码释放吗?如需要,帮我写一下。 数据结构 单链表 malloc exit
[解决办法]
LinkList难不成是个指针?
[解决办法]
malloc分配的空间,在不用的时候必须要free掉。
代码参考:
LinkList p = L->next ;
while(p!= NULL){
L->next=p->next;
free(p);
p = L->next;
}

读书人网 >C语言

热点推荐