小白的编程自学之路之数据结构

链表的创建与阅览

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 私信 关注
上一篇:剑指 offer之链表中环的入口结点_Java


下一篇:C语言单链表