線性表 鏈式儲存結構之迴圈雙鏈表

2021-08-02 12:08:08 字數 2912 閱讀 5887

該文章主要介紹線性表的鏈式儲存運算以及相關運算—迴圈雙鏈表。

標頭檔案:cdlinklist.h

template struct dlinklist							//迴圈雙鏈表結點型別

;template class cdlinklistclass //迴圈雙鏈錶類

;

原始檔:cdlinklist.cpp

#include #include "cdlinklist.h"

//********************====迴圈雙鏈表的基本運算演算法********************====

template cdlinklistclass::cdlinklistclass() //建構函式,建立乙個空迴圈雙鏈表

template cdlinklistclass::~cdlinklistclass() //析構函式,銷毀迴圈雙鏈表

delete pre;

}template void cdlinklistclass::createlistf(t a, int n) //頭插法建立迴圈雙鏈表

}template void cdlinklistclass::createlistr(t a, int n) //尾插法建立迴圈雙鏈表

r->next = dhead;

dhead->prior = r;

}template void cdlinklistclass::displist() //輸出迴圈雙鏈表所有結點值

cout << endl;

}template int cdlinklistclass::listlength() //求迴圈雙鏈表資料結點個數

return (i);

}template bool cdlinklistclass::getelem(int i, t &e) //求迴圈雙鏈表中某個資料元素值

if (p == dhead)

return false;

else }

template int cdlinklistclass::locateelem(t e) //按元素值查詢

if (p == dhead)

return 0;

else

return i;

}template bool cdlinklistclass::listinsert(int i, t e) //插入資料元素

if (p == dhead && i>j + 1)

return false;

else }

template bool cdlinklistclass::listdelete(int i) //刪除資料元素

if (p == dhead) return false;

else }

//********************=迴圈雙鏈表的其他運算演算法*************************===

template void comb(cdlinklistclass&l1, cdlinklistclass&l2)

template bool findx(cdlinklistclass&l, c x)

if (p->data == x)

return true;

else

p = p->next;

if (q->data == x)

return true;

else

q = q->prior; }}

template bool equeal(cdlinklistclass&l)

else

return false;

}}

主函式:main.cpp

#include "cdlinklist.cpp"

using namespace std;

//********************=迴圈雙鏈表的基本運算演算法*************************===

void main1()

//***************==迴圈雙鏈表的其他運算演算法******************************

void main()

; int a2 = ;

l1.createlistr(a1,6);

l2.createlistr(a2, 3);

cout << "迴圈雙鏈表l1:"; l1.displist();

cout << "迴圈雙鏈表l2:"; l2.displist();

comb(l1, l2);

cout << "合併後,迴圈雙鏈表l1:"; l1.displist();

cout << "合併後,迴圈雙鏈表l2:"; l2.displist();

cout << endl << endl;

//===

cdlinklistclassl3;

int a3 = ;

int e =0;

l3.createlistr(a3, 6);

bool flag = findx(l3, e);

if (flag)

else

cout << endl << endl;

//===

cdlinklistclassl4;

int a4 = ;

l4.createlistr(a4, 6);

bool equal = equeal(l4);

if (equal)

else

}

線性表 鏈式儲存結構之雙鏈表

該文章主要介紹線性表的鏈式儲存運算以及相關運算 雙鏈表。標頭檔案 dlinklist.h template struct dlinklist 雙鏈表結點型別 template class dlinklistclass 雙鏈錶類 原始檔 dlinklist.cpp include include dl...

線性表 鏈式儲存結構之單鏈表

ifndef linklist h define linklist h include include include template class node node const elemtype data data data next null node const elemtype data,...

線性表鏈式儲存結構

include include 線性表鏈式儲存結構 typedef struct lnodelnode,linklist int initlist linklist l 初始化 int endinsert linklist l,int e p next s return 1 末尾插入元素 int g...