在新學習數據結構中,鏈表是一個不太容易理解的知識點,
下面編寫一個創建鏈表和輸出鏈表的小例子來解決在學習鏈表中的困惑
/*
創建鏈表,打印鏈表信息
*/
#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;
}
}
運行結果: