|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
struct Node
{
int data; //数据域
struct Node *pNext; //指针域
};
struct Node *create_list();
void traverse_list(struct Node *);
int main()
{
struct Node * pHead = NULL;
pHead = create_list(); //create_list()功能:创建一个非循环链表,并将
traverse_list(pHead);
return 0;
}
struct Node * create_list()
{
int len; //用来存放有效节点的个数
int i;
int val; //用来临时存放用户输入的节点的值
//分配了一个不存放有效数据的头结点
struct Node * pHead = (struct Node *)malloc(sizeof(struct Node));
if(NULL == pHead)
{
printf("分配失败,程序终止!\n");
exit (-1);
}
struct Node *pTail = pHead;
pTail->pNext = NULL;
printf("请输入您需要生成的链表节点的个数:len=");
scanf("%d",&len);
for(i=0;i<len;++i)
{
printf("请输入第%d个节点的值:",i+1);
scanf("%d",&val);
struct Node *pNew=(struct Node *)malloc(sizeof(struct Node));
if(NULL == pNew)
{
printf("分配失败,程序终止!\n");
exit (-1);
}
pNew->data=val;
pTail->pNext=pNew;
pNew->pNext=NULL;
pTail=pNew;
}
return pHead;
}
bool empty_list(struct Node * pHead)
{
if(pHead->pNext)
return true;
else
return false;
}
void traverse_list(struct Node *pHead)
{
struct Node *p = pHead->pNext;
while(NULL!=p)
{
printf("%d\n",p->data);
p=p->pNext;
}
}
这是一个链表反序程序,没有释放申请的内存空间,应该在哪里释放呢?
|
|