#include using namespace std;
//列印選項
void printtheselect()
typedef struct dulnode
dulnode,*dulinklist;
//初始化雙向鍊錶
void initdlist(dulinklist &l)
cout<<"雙向鍊錶構造完畢!\n";
}//列印雙向鍊錶
void printdlist(dulinklist &l)
else if(l->next == null)
else
coutelse
//p指向了最後乙個
while(p->prior)
}}//求鍊錶長度
int lengthdlist(dulinklist &l)
else
}return i;
}//判斷鍊錶是否為空
void isemptyornotdlist(dulinklist &l)
else if( l->next == null )
else
}//把雙向鍊錶置空(頭結點保留)
void clearthedlist(dulinklist &l)
else
}}//刪除雙向鍊錶
void delthedlist(dulinklist &l)
//在雙向鍊錶中第i個位置後面插入元素m
void insertelmtodlist(dulinklist &l)
else if(l->next == null)
else if( i<1 || i>lengthdlist(l)+1 )
else
if( j == lengthdlist(l) )
//如果在最後乙個元素後面插入m
else
}}//刪除雙向鍊錶中的第i個元素
void delelmfromdlist(dulinklist &l)
else if( i<1 || i>lengthdlist(l) )
else
if( j == lengthdlist(l) )//如果是最後乙個元素
else
}}int main()
if(0 == i)
return 0;
}
雙向鍊錶的操作
摘自 雙向鍊錶是鍊錶的一種。它的每乙個結點都有兩個指標,乙個指向前乙個結點,乙個指向後乙個結點。因此可以從雙向鍊錶的任意結點開始可以很方便的訪問鍊錶的任意位置。雙向煉表示意圖 1 雙向鍊錶的刪除 2 雙向鍊錶的插入 在做刪除插入的時候,最好把圖畫出來。這樣思路就很清晰 1 package algor...
雙向鍊錶 基本操作
test.c define crt secure no warnings 1 include doubleslishtnode.h void test1 initdslist pushback printfdslist popback void test2 pushfront popfront vo...
雙向鍊錶基本操作
帶頭節點的雙向鍊錶操作 include include include define ok 1 define error 0 define overflow 0 using namespace std typedef int status typedef int elemtype typedef s...