#ifndef dlist_h_included
#define dlist_h_included
#includeusing namespace std;
templateclass dlist;
templateclass listnode
listnode(type d,listnode*n = null,listnode*m = null):data(d),next(n),prior(m)
{}~listnode()
{}public:
void setdata(type d)
void getdata()const
private:
type data;
listnode*next;
listnode*prior;
};templateclass dlist
~dlist()
public:
void push_back(const type &x);
void push_front(const type &x);
void show_list()const;
void pop_back();
void pop_front();
void insert_val(const type &x);
void delete_val(const type &x);
bool find(const type &x);
type length();
void clear();
void destroy(); //摧毀該順序表
void reserv(); //反轉
void sort();
protected:
listnode* buynode(type x = type())
private:
listnode*first;
listnode*last;
};templatevoid dlist::push_back(const type &x)
templatevoid dlist::push_front(const type &x)
else
first->data++;
}templatevoid dlist::show_list()const
couttemplatevoid dlist::pop_front()
}templatevoid dlist::insert_val(const type &x)
else if(last->data < s->data)
else
p=p->next;}}
}templatevoid dlist::delete_val(const type &x)
delete q;
first->data--;
}templatebool dlist::find(const type &x)
templatevoid dlist::destroy()//摧毀該順序表
templatevoid dlist::reserv() //反轉
first->next = p;
}templatevoid dlist::sort()
p = p->next;
}s = s->next;
}}#endif // dlist_h_included
#include"dlist.h"
int main()
break;
case 2:
cout<<"請輸入要插入的值(-1結束):>";
while(cin>>item, item!=-1)
break;
case 3:
mylist.show_list();
break;
case 4:
mylist.pop_back();
break;
case 5:
mylist.pop_front();
break;
case 6:
cout<<"請輸入要插入的值:>";
cin>>item;
mylist.insert_val(item);
break;
case 7:
cout<<"請輸入要刪除的值:>";
cin>>item;
mylist.delete_val(item);
break;
case 8:
cout<<"請輸入要查詢的值:>";
cin>>item;
mylist.find(item);
break;
case 9:
mylist.length();
break;
case 10:
mylist.clear();
break;
case 11:
mylist.destroy();
break;
case 12:
mylist.reserv();
break;
case 13:
mylist.sort();
break;
default:
break;}}
}
C 資料結構 雙鏈表
據說單鏈表沒有迴路,那麼雙鏈表也出現了,既包括後繼指標,又加入了前驅指標,某個元素可以尋找他上面乙個元素,也可以尋找到下乙個元素。當然雙鏈表也是鍊錶的一種。物理儲存結構 不一定是連續的儲存區域 邏輯儲存結構 邏輯上儲存是連續的 使用場景 跟單鏈表一樣,適用於對資料的大量新增和刪除元素,對訪問元素無要...
資料結構 雙鏈表
typedef struct nodenode 雙鏈表的根節點的bwd指標指向雙鏈表的最後乙個節點,fwd指標指向雙鏈表的第乙個節點,雙鏈表的value欄位為空 以下程式是將乙個值插入到乙個有序的雙鏈表中,如果鍊錶中已經有和該值相同的節點則不插入 include include typedef st...
資料結構 雙鏈表
目標 掌握雙鏈表的資料結構 來看看什麼是雙鏈表吧 雙鏈表與單鏈表的區別,單鏈表是單項的 而雙鏈表是有左右的 題目acwing 827 實現乙個雙鏈表,雙鏈表初始為空,支援5種操作 1 在最左側插入乙個數 2 在最右側插入乙個數 3 將第k個插入的數刪除 4 在第k個插入的數左側插入乙個數 5 在第k...