資料結構(C ) 雙迴圈鍊錶

2021-07-26 07:47:58 字數 2821 閱讀 2287

#include"allhead.h"

templateclass dblist;

templateclass dblistnode

dblistnode(t x,dblistnode*pt = null,dblistnode*nt = null) };

templateclass dblist

~dblist()

status push_back(t x);

status push_front(t x);

t gethead();

t getlast();

void show_dblist();

size_t getlenth()

void makeempty();

status isempty()

status pop_back();

status pop_front();

status insert_val(t x);

status del_val(t x);

void sort();

void reverse();

};templatevoid dblist::reverse()

}templatevoid dblist::sort()

if(h == begin)

m->next = h;

m->pre = h->pre;

h->pre->next = m;

h->pre = m;

} }}templatestatus dblist::del_val(t x)

if(p == begin)

p->pre->next = p->next;

p->next->pre = p->pre;

delete p;

--size;

return ok;

}templatestatus dblist::insert_val(t x)

if(p == begin)

s->next = p;

s->pre = p->pre;

s->pre->next = s;

p->pre = s;

++size;

return ok;

}templatestatus dblist::pop_front()

return ok;

}templatestatus dblist::pop_back()

templatet dblist::getlast()

templatevoid dblist::show_dblist()

cout<<"null"templatestatus dblist::push_front(t x)

s->data = x;

s->next = begin->next;

s->pre = begin;

begin->next = s;

s->next->pre = s;

++size;

return ok;

}templatestatus dblist::push_back(t x)

templatevoid dblist::makeempty()

end = begin;

size = 0;

}}

#if 1

#include"dblist.h"

int main()

break;

case 2:

int val_pb;

cout<<"請輸入插入的值(以-1結束):>">val_pb,val_pb!=-1)

break;

case 3:

myls.show_dblist();

break;

case 4:

size_t size;

size = myls.getlenth();

cout<<"迴圈鍊錶長度為:"

case 5:

int head;

head = myls.gethead();

cout<<"該鍊錶的第乙個為:"

case 6:

int last;

last = myls.getlast();

cout<<"該鍊錶的最後乙個值為:"

case 7:

exit(1);

break;

case 9:

myls.makeempty();

break;

case 10:

myls.pop_back();

break;

case 11:

myls.pop_front();

break;

case 12:

int val_insert;

cout<<"請輸入您要插入的值:>";

cin>>val_insert;

myls.insert_val(val_insert);

break;

case 13:

int val_del;

cout<<"請輸入您要刪除的值:>";

cin>>val_del;

myls.del_val(val_del);

break;

case 14:

myls.sort();

break;

case 15:

myls.reverse();

break;}}

return 0;

}#endif

雙迴圈鍊錶

nyoj511移動小球 include include typedef struct node lnode 結點 lnode creat list lnode head,int num 建立不帶頭結點的雙迴圈鍊錶 current data i current rear current pre nul...

雙迴圈鍊錶

include include include include include include using namespace std typedef int elemtype typedef struct node linknode,linklist 鍊錶初始化 linklist initlink...

資料結構C 迴圈鍊錶

我曾經去一家遊戲公司面試時遇到乙個筆試題,大意就是說有一群人出去旅遊,在河中遇到了大風,然後用轉盤決定誰在留在船上,誰自己跳下去自行解決生存問題。大家圍成乙個圈,啟動轉盤,轉盤指向誰就從睡開始數數,當有人數到13時,誰就跳下去,然後從下乙個人開始從頭數,當再有人數到13時,繼續上乙個迴圈。當時題意沒...