链表的创建与阅览
include <stdio.h>
include <malloc.h>
include <stdlib.h>
typedef struct Node
{
int date ; //数据域
struct Node *pNext ; //指针域
}NODE,*PNODE; //NODE 等价于struat node PNODE等价于struct Node *
//函数声明
PNODE create_list (void);
void traverse_list (PNODE pHead);
int main (void)
{
PNODE pHead=NULL; // 等价于 struct Node *pHead=NULL;
pHead =create_list(); //creat_list() 创建一个非循环单链表,并将该链表的首地址赋给pHead
traverse_list(pHead); //traverse_list() 创建一个函数用于链表的遍历
return 0;
}
PNODE create_list (void)
{
int len ; //用来存放有效节点的个数
int i;
int val; //用来临时存放用户输入的节点的值
//分配了一个不存放有效数据的头节点
PNODE pHead =(PNODE)malloc(sizeof(NODE)) ;
if (NULL==pHead)
{
printf (“分配失败,程序终止 !\n”);
exit(-1);
}
PNODE pTail=pHead;
pTail->pNext=NULL;
printf (“请输入你需要生成链表节点的个数: len= “);
scanf (”%d”,&len);
for (i=0;i<len;++i)
{
printf (“请输入第%d个节点的值:”,i+1);
scanf ("%d",&val);
PNODE pNew =(PNODE )malloc(sizeof (NODE));
if (NULL==pNew)
{
printf (“分配失败,程序终止!\n”);
exit (-1);
}
pNew->date=val;
pTail->pNext=pNew;
pNew->pNext=NULL;
pTail=pNew;
}
return pHead;
}
void traverse_list (PNODE pHead)
{
PNODE p=pHead->pNext;
while (NULL!=p)
{
printf ("%d",p->date);
p=p->pNext;
}
printf ("\n");
return ;
}
代码出自郝斌老师数据结构课程,感谢
taco_tuesday 发布了4 篇原创文章 · 获赞 0 · 访问量 51 私信 关注