鍊錶 單鏈表的建立

2021-08-18 13:13:05 字數 1321 閱讀 4062

建立乙個節點:

struct student

注意:當有新的節點要新增到鍊錶中時,原來最後乙個節點的指標將儲存新新增的節點位址,而新的節點的指標將指向空(null),當新增完成後,新節點將成為鍊錶的最後乙個節點。(實際上是尾插法建立鍊錶)

例:動態建立乙個鍊錶

步驟分析:

1、初始化乙個頭節點,即定義乙個頭指標令其為空。

2、為了插入第乙個節點,先定義兩個指向結構體的指標變數pend、pnew。

struct student *pend,*pnew;   //指標pnew總是指向要建立新的節點的資料域
3、為第乙個節點賦予資料

scanf("%s",&pnew->name);     //給第乙個節點資料域賦值

scanf("%d",&pnew->number);

4、插入第乙個節點

pnew->pnext=phead;   //將新插入的節點的指標域置空

pend=pnew; //讓pend指標也指向新插入節點的資料域

phead=pnew; //使頭指標指向新插入的節點(將新節點的位址賦給頭指標)

5、在該節點後再插入新的節點

首先先給資料域賦值

scanf("%s",&pnew->name);     

scanf("%d",&pnew->number);

接下來將該節點與上乙個節點鏈結起來

null; //將新插入的節點的指標域置空

pend->pnext=pnew;

pend=pnew; //pend再次指向新節點

還要繼續插入的話在重複執行上一步驟就好了,可以看出這樣就不用擔心鍊錶的長度超出範圍了。

鍊錶 單鏈表的拆分

資料結構實驗之鍊表五 單鏈表的拆分 time limit 1000 ms memory limit 65536 kib problem description 輸入n個整數順序建立乙個單鏈表,將該單鏈表拆分成兩個子鍊錶,第乙個子鍊錶存放了所有的偶數,第二個子鍊錶存放了所有的奇數。兩個子煉表中資料的相...

鍊錶 單鏈表翻轉

看到好多部落格裡面寫鍊錶翻轉時候就是 要麼一樣,要麼沒有注釋。咱最近閒人一枚,準備好好寫寫code給大家分享一下自己的思想.使用前插法 1 2 3 4 null 我把1標記為prev,把2標記temp,把3標記next 使得最後順序輸出 4 3 2 1 null 定義linklist型別的prev ...

鍊錶 單鏈表 一

一.帶頭節點的單鏈表與不帶頭節點的單鏈表的比較 下面以插入演算法為例 1.帶頭節點 templatevoid linklist insert int i,t x if p null throw 位置非法 else 2.不帶頭節點templatevoid linklist insert int i,t...