一 :迴圈鍊錶
首位相接的鍊錶,將單鏈表的尾指標指向表頭結點,就得到了單迴圈鍊錶,
一般,在迴圈鍊錶中設定乙個頭結點,這樣空的迴圈鍊錶就是自成迴圈的頭結點表示;另外多採用
尾指標表示單迴圈鍊錶,比如尾指標是rear,則rear->next->next和rear分別表示頭結點和尾結點。
優點:從任意結點都可以訪問到表中所有結點。
二 :雙鏈表
在單鏈表中每個節電裡面再增加乙個指向其直接前驅的指標域prior.就形成了雙(向)鍊錶。
如果將頭結點和尾結點連線起來就是雙向迴圈鍊錶
雙鏈表使得插入和刪除(無論是插在前面還是後面)要比單鏈表簡單。
下面是簡單的雙鏈表實現:
#include "stdlib.h" #include "stdio.h" typedef char datatype; typedef struct dlistnode dlistnode; typedef dlistnode * dlinklist; dlinklist createlistd(void) s2->next=null; return head; } // 插入指定元素前面 void dinsertbefore(dlistnode *p,datatype x) // 刪除指定的元素 void ddeletenode(dlistnode *p) // 列印鍊錶 void printall(dlinklist head) } main()
資料結構學習(三) 雙向鍊錶
class heronode2 override public string tostring public void add heronode2 heronode temp temp.next 退出while時候,temp就指向了鍊錶的最後,指向新的node temp.next heronode ...
資料結構學習筆記 鍊錶
表示式的計算 表示式的計算涉及到棧的操作 對於表示式 a b c d e f 演算法 用到兩個棧,分別是符號棧和運算元棧。輸入表示式時,為了表示表示式輸入完畢,在表示式的最後加上 號,也就是說輸入的表示式為 a b c d e f 首先設定各個符號的優先順序,和 的優先順序為0,也就是最低的 和 的...
資料結構學習筆記 鍊錶
2.建立鍊錶 3.單向和雙向迴圈鍊錶 4.總結 struct list node 首先了解鍊錶的組成部分 說明 頭節點 在單鏈表的第乙個結點之前附設乙個結點,它沒有直接前驅,稱之為頭結點,頭結點的資料域可以不儲存任何資訊,指標域指向第乙個節點 首節點 的位址。頭結點的作用是使所有鍊錶 包括空表 的頭...