建立乙個節點:
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...