(1)單鏈表儲存結構類的定義:
#include using(2)初始化帶頭結點空單鏈表建構函式實現namespace
std;
template
class
linlist
;
template linlist(3)利用陣列初始化帶頭結點的單鏈表建構函式實現::linlist() //
建構函式
template linlist(4)在帶頭結點單鏈表的第i個位置前插入元素e演算法::linlist(t a,int
i)}
template(5)在帶頭結點單鏈表中刪除第i個元素演算法void linlist::insert(const t& e,int i); //
插入 listnode
*p=index(i-1); //
p為指向第i-1個結點的指標
//構造新結點q的data域值為item,next域值為p->next
listnode *q=new listnode (e,p->next);
p->next=q; //
新結點插入第i個結點前
size++; //
元素個數加1
}
template t linlist(6)遍歷單鏈表元素演算法::delete(int i,t& e); //
刪除
if(i<0||i>size-1
)
listnode
*s,*p=index(i-1); //
p為指向第i-1個結點指標
s=p->next; //
s指向第i個結點
p->next=p->next->next; //
第i個結點脫鏈
t x=s->data;
e=x;
delete s; //
釋放第i個結點空間
size--; //
結點個數減1
return e; //
返回第i個結點的data域值
}
template(7)求單鏈表表長演算法。void linlist::getall()
cout
<
}
template(8)判單鏈表表空演算法int linlist::size(void) const
template(9)獲得單鏈表中第i個結點的值演算法bool linlist::isnull()
else
}
template t linlist主函式呼叫::getdata(int
i) listnode
*p=index(i)
return p->data;
}
(1)利用陣列初始化帶頭結點的單迴圈鍊錶建構函式實現
template circlelist::circlelist(t a,(2)在帶頭結點單迴圈鍊錶的第i個位置前插入元素e演算法int n) //
建立方式大同小異,唯一的區別就是建立的最後將尾結點指向頭結點 }}
template(3)在帶頭結點單迴圈鍊錶中刪除第i個元素演算法void circlelist::insertnode(int
n,t data)
templatevoid circlelist::deletenode(int i) //
刪除i位置的結點
else
}
templatevoid sort1(int c,int d,t a,t b,linlistli)
if(bmin==d)
if(a[amin]>b[bmin])
else
if(a[amin]
else
}li.getall();
}
線性表的鏈式儲存
此方法雖然簡單,但是真寫起來太複雜了。線性表的鏈式儲存 include include struct lnode 線性表的初始化 void init l lnode l 線性表的後插建立 void create l1 lnode l n next null 線性表的後插建立 void create ...
線性表的鏈式儲存
引言 一 單鏈表 相較於順序儲存用連續的儲存單元儲存,單鏈表採用鏈式儲存結構,用一組位址任意的儲存單元儲存資料元素。特點 1 儲存單元可以是不連續的,即邏輯結構與物理結構可以不相同 2 元素用結點儲存,每個結點由元素值和下乙個元素的位址構成 3 單鏈表是由每個結點的指標域按照邏輯次序相互連線而成的。...
線性表的鏈式儲存
include include include typedef int elemtype typedef struct nodenode,nodeptr 鍊錶節點 typedef struct listlist,listptr 鍊錶,頭結點為0位置 listptr initlist 初始化鍊錶 vo...