該文章主要介紹線性表的鏈式儲存運算以及相關運算—迴圈雙鏈表。
標頭檔案: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...