链表的创建和遍历
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
//typedef int zhangsan;//为int多取一个名字 zhangsan 代替int
typedef struct Node
{
int data;//数据域
struct Node *pNext;//指针域
}NODE, *PNODE;//NODE等价于struct Node *PNODE等价于struct Node *
//等价于STU代表了struct Student,PSTU代表了struct Student *
//函数声明
PNODE create_list(void);
void traverse_list(PNODE pHead);
int main(void)
{
PNODE pHead = NULL;
pHead = create_list();//创建一个非循环单链表,并将该链表的首地址给pHead
traverse_list(pHead);
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_s("%d", &len);
for (i = 0; i < len; ++i)
{
printf("请输入第%d个节点的值:",i + 1);
scan