在新学习数据结构中,链表是一个不太容易理解的知识点,
下面编写一个创建链表和输出链表的小例子来解决在学习链表中的困惑
/*
创建链表,打印链表信息
*/
#include <stdio.h>
#include <malloc.h>
typedef struct list
{
int vaule; //数据域
struct list *PNext; //指针域
}TNODE, *TPNODE;
TPNODE Creat_list();
void Trave_list(TPNODE _PHead);
int main()
{
TPNODE PHead;
PHead = Creat_list();
Trave_list(PHead);
return 0;
}
//创建链表
TPNODE Creat_list()
{
int i = 0;
int len = 0;
int iVaule = 0;
TPNODE pHead;
pHead = (TPNODE)malloc(sizeof(TNODE)); //创建一个头结点
if(NULL == pHead)
{
printf("create list fail\n");
}
TPNODE PTail = pHead;
pHead->PNext = NULL;
printf("please input len\n");
scanf("%d", &len);
for(i = 0; i < len; i++)
{
printf("please input num %d value :\n", i+1);
scanf("%d", &iVaule);
TPNODE pNew = (TPNODE)malloc(sizeof(TNODE));
pNew->vaule = iVaule; //将数据域赋予数据
PTail->PNext = pNew;
pNew->PNext = NULL;
PTail = pNew;
}
return pHead;
}
//链表输出
void Trave_list(TPNODE _PHead)
{
TPNODE P = _PHead->PNext;
while(NULL != P)
{
printf("----%d\n", P->vaule);
P = P->PNext;
}
}
运行结果: