在單鏈表中,每個節點只有乙個指標指向它的直接後繼,訪問資料時只能沿著指標向前訪問。若要訪問某一節點的前驅節點,只能從頭開始訪問。為解決這一問題而引出了雙向鍊錶的概念。雙向鍊錶中的每個節點包含兩個指標(prior和next)分別指向它的前驅和後繼,從乙個節點出發既可以訪問它的後繼節點,也可訪問它的前驅節點。可大大節省訪問前驅節點的時間。
本文主要實現雙向鍊錶的初始化、插入、刪除和輸出操作。實現**如下:
#include
using namespace std;
struct node
;node *head;
void init()
if (i > 1 && i < n)
if (i == n)
}cout << "初始化完成。" << endl;
}void output()
while (p!=null);
cout << endl;
}void insert()
else
news->next = p->next;
news->prior = p;
p->next = news;
p = news;
}cout << "插入成功。" << endl;
}void dele()
else
else
}cout << "刪除成功。" << endl;
}int main()
雙向鍊錶的實現 資料結構學習(三)
雙向鍊錶的每個節點包含兩個指標 prior和next 分別指向該節點的直接前驅和後繼。雙向鍊錶可方便的實現對乙個節點前驅節點的訪問。include using namespace std struct node node head void init if i 1 i n if i n cout 初...
資料結構學習(三) 雙向鍊錶
class heronode2 override public string tostring public void add heronode2 heronode temp temp.next 退出while時候,temp就指向了鍊錶的最後,指向新的node temp.next heronode ...
資料結構學習筆記三 迴圈鍊錶及雙向鍊錶
一 迴圈鍊錶 首位相接的鍊錶,將單鏈表的尾指標指向表頭結點,就得到了單迴圈鍊錶,一般,在迴圈鍊錶中設定乙個頭結點,這樣空的迴圈鍊錶就是自成迴圈的頭結點表示 另外多採用 尾指標表示單迴圈鍊錶,比如尾指標是rear,則rear next next和rear分別表示頭結點和尾結點。優點 從任意結點都可以訪...