首先我們來了解一下什么是鏈表?
通俗的來說鏈表就是一種鏈式存盤結構,大家可以抽象理解一下把他想象成一個鐵鏈,鐵鏈不是由一個個鐵環,環環相扣組成的嘛!那么每個鐵環就可以叫做一個節點,如果我們再在每個鐵環上面系上兩個個小盒子,那么這兩個小盒子一個叫做資料域就是存放每個節點資料的地方一個叫做指標域這個就是存放下一個節點(鐵環)地址的地方,可能這樣說還有點抽象,直接上圖,

這就是鏈表里面一個節點的樣子,下面我們給多個節點串起來形成鏈表!

我給每個節點的地址設為A,B,C,注意看第一個節點的指標域存放的是第二個節點的地址B,第二個節點的指標域存放的是第三個節點的地址,這樣就把每個節點就穿一起咯,這就是最簡單的鏈表,單鏈表,
下面我們看一下代碼實作
先看一個節點的表示:
typedef struct lianbiao
{
int date;//資料域
struct lianbiao *pnext;//地址域
}link;
然后我們要做的就是像鐵環一樣給串起來,上代碼:
#include <stdio.h>
#include <stdlib.h>
typedef struct lianbiao
{
int date;
struct lianbiao *pnext;
}link;
link *pnew;//新節點
link *phead;//頭節點
link *ptemp;//臨時節點
int count=1;
void creat(void);
void add(void);
int main()
{
int n,i;
printf("請輸入所需要創建的鏈表長度,不可為0\n");
scanf("%d", &n);
creat();
for(i=0;i<n-1;i++)
{
add();
}
printf("鏈表創建完畢,輸出鏈表所有資料\n");
//printf("%d ", phead->date);
for(ptemp=phead;ptemp!=NULL;ptemp=ptemp->pnext)
{
printf("%d ", ptemp->date);
}
return 0;
}
void creat(void)//創建頭節點
{
phead=(link*)malloc(sizeof(link));
phead->pnext=NULL;
phead->date=0;
//memset(link,0,sizeof(link));
}
void add(void)//添加節點
{
pnew=(link*)malloc(sizeof(link));
pnew->date=count;
pnew->pnext=0;
ptemp=phead;
while(ptemp->pnext!=NULL)
{
ptemp=ptemp->pnext;
}
ptemp->pnext=pnew;
//pnew=NULL;
count++;
}
運行結果:

如有問題可以在評論區或者私信我!感謝評閱,歡迎指正交流,
鏈表基礎2(超簡單)–單鏈表的插入和洗掉
鏈表基礎3(超簡單)–單鏈表的逆序
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/197883.html
標籤:python
上一篇:SIP 協議格式簡介
