SDUT OJ 資料結構實驗之鍊表九 雙向鍊錶

2021-08-15 19:44:13 字數 1104 閱讀 6617

time limit: 1000 ms

memory limit: 65536 kib

submit

statistic

discuss

problem description

學會了單向鍊錶,我們又多了一種解決問題的能力,單鏈表利用乙個指標就能在記憶體中找到下乙個位置,這是乙個不會輕易斷裂的鏈。但單鏈表有乙個弱點——不能回指。比如在鍊錶中有兩個節點a,b,他們的關係是b是a的後繼,a指向了b,便能輕易經a找到b,但從b卻不能找到a。乙個簡單的想法便能輕易解決這個問題——建立雙向鍊錶。在雙向鍊錶中,a有乙個指標指向了節點b,同時,b又有乙個指向a的指標。這樣不僅能從煉表頭節點的位置遍歷整個鍊錶所有節點,也能從鍊錶尾節點開始遍歷所有節點。對於給定的一列資料,按照給定的順序建立雙向鍊錶,按照關鍵字找到相應節點,輸出此節點的前驅節點關鍵字及後繼節點關鍵字。

input

第一行兩個正整數n(代表節點個數),m(代表要找的關鍵字的個數)。第二行是n個數(n個數沒有重複),利用這n個數建立雙向鍊錶。接下來有m個關鍵字,每個佔一行。

output

對給定的每個關鍵字,輸出此關鍵字前驅節點關鍵字和後繼節點關鍵字。如果給定的關鍵字沒有前驅或者後繼,則不輸出。

注意:每個給定關鍵字的輸出佔一行。

一行輸出的資料之間有乙個空格,行首、行末無空格。

sample input

10 3

1 2 3 4 5 6 7 8 9 035

0

sample output

2 4

4 69

水題;

#include #include struct node

;int main()

tail = (struct node *)malloc(sizeof(struct node));

tail->next = null;

p->next = tail;

tail->before = p;

for(i=0; inext;

while(p)

else p = p->next;}}

return 0;

}

SDUT OJ 資料結構實驗之鍊表一 順序建立鍊錶

time limit 1000 ms memory limit 65536 kib submit statistic discuss problem description 輸入n個整數,按照輸入的順序建立單鏈表儲存,並遍歷所建立的單鏈表,輸出這些資料。input 第一行輸入整數的個數n 第二行依次...

SDUT OJ 資料結構實驗之鍊表二 逆序建立鍊錶

time limit 1000 ms memory limit 65536 kib submit statistic discuss problem description 輸入整數個數n,再輸入n個整數,按照這些整數輸入的相反順序建立單鏈表,並依次遍歷輸出單鏈表的資料。input 第一行輸入整數n...

SDUT OJ 資料結構實驗之鍊表九 雙向鍊錶

time limit 1000 ms memory limit 65536 kib submit statistic discuss problem description 學會了單向鍊錶,我們又多了一種解決問題的能力,單鏈表利用乙個指標就能在記憶體中找到下乙個位置,這是乙個不會輕易斷裂的鏈。但單鏈...