• 沒有找到結果。

鏈結串列的應用

N/A
N/A
Protected

Academic year: 2021

Share "鏈結串列的應用"

Copied!
9
0
0

加載中.... (立即查看全文)

全文

(1)

鏈結

串列

的應用

資料結構 鍾宜玲

(2)

鏈結堆疊與鏈結佇列

top 頂端指標 : NULL 鏈結堆疊 … NULL 鏈結佇列 前端指標 front 尾端指標 rear

(3)

鏈結堆疊

假設節點有資料欄 data 與鏈結欄 link

加入新資料至鏈結堆疊

 若新資料為d,先製作新節點 p :

printf(“輸入資料:”);

scanf(“%d”, &d); p=new(); p->data=d;  加入新資料至鏈結堆疊: p -> link = top ; 新節點 p->link = top; d p data link top top = p; …

(4)

刪除鏈結堆疊的頂端資料

程式片段如下:

p = top; top = top->link ; NULL top free(p); p

(5)

鏈結佇列

假設鏈結佇列之節點含資料欄data及鏈結欄link

加入新資料於鏈結佇列的尾端

 先製作一新節點 p: printf(“輸入資料:”); scanf(“%d”, &d); /*若新資料為d*/ p=new(); /*分配新節點空間*/ p->data=d; /*新節點資料欄為d*/ … front rear d p NULL data 新節點 link NULL

(6)

加入節點p至鏈結佇列尾端:

(2) rear改指向新節點p

rear->link = p; rear = p;

(1) rear的鏈結欄link改指向新節點p

… front rear d p NULL data 新節點 link NULL

(7)

考慮新節點加入至空鏈結佇列時,

必須 front 與 rear皆改指向新節點p

front = p;

rear = p; front

rear p ddata NULL

新節點 link NULL

(8)

新節點加入至空鏈結佇列

if ( front == NUL L ){ front = p; rear = p; } else { rear -> link = p; rear = p; } 可改寫為: if ( front == NULL ) front = p; else rear -> link = p; rear = p;

(9)

刪除鏈結佇列的前端資料

NULL

front

front = front -> link; /*front改指向第二個節點 */

p

free(p); /*歸還原來的前端節點空間*/

rear

參考文獻

相關文件

在撰寫網頁應用程式 HTML 的語法當中,以下何者錯誤?(A)<a>是用來製作超連結的標記(Tag) (B)HREF 是一個在<a>與</a>中指定其他

4.支出憑證如有遺失或供其他用途者,應檢附與原本相符之影本,或其他

在學界並沒有引起太多的迴響。然而,在 1913 年 1 月 23 日的〈《尤金》的統計調查為 例:關於鏈中樣本的前後關聯〉(An example of statistical investigation of the text Eugene

有一長條型鏈子,其外型由邊長為 1 公分的正六邊形排列而成。如下 圖表示此鏈之任一段花紋,其中每個黑色六邊形與 6 個白色六邊形相

有一長條型鏈子,其外型由邊長為 1 公分的正六邊形排 列而成。如下圖表示此鏈之任一段花紋,其中每個黑色 六邊形與 6 個白色六邊形相鄰。若鏈子上有

ƒ 提供 Connection Oriented (連結導向) 並達成End-to- End (兩端通訊端點對端點) Process-to-Process (程序對 程序)、Reliable Data Delivery

collectively called derived declarator types.hh. C99

圖1 1 會計財務與價值鏈 圖1.1 會計財務與價值鏈..