線性表 順序表與單鏈表(模板)

2021-10-23 02:59:41 字數 3846 閱讀 2562

順序表(線性表的順序儲存結構,靜態儲存分配,通常用一位陣列來實現)

#include

using

namespace std;

const

int maxsize=

100;

template

<

typename t>

class

seqlist

;template

<

typename t>

seqlist

::seqlist()

template

<

typename t>

seqlist

::seqlist

(t a,

int n)

length=n;

}template

<

typename t>

seqlist::~

seqlist()

template

<

typename t>

int seqlist

::empty()

template

<

typename t>

int seqlist

::length()

template

<

typename t>

t seqlist

::get

(int i)

template

<

typename t>

int seqlist

::locate

(t x)

template

<

typename t>

void seqlist

::insert

(int i,t x)

data[i-1]

=x; length++;}

template

<

typename t>

void seqlist

::print()

}template

<

typename t>

t seqlist

::delete

(int i)

length--

;return x;

}int

main()

; seqlist<

int>

l(r,5)

; cout<<

"輸出原始順序表:"

; l.

print()

; cout

"插入操作:"

;try

catch

(char

*str)

cout

"刪除操作"

;try

catch

(char

*str)

cout

"按位查詢操作"

;try

catch

(char

*str)

cout<<

"按值查詢操作"

;try

catch

(char

*str)

return0;

}

單鏈表(線性表的鏈式儲存結構,動態儲存分配空間,指標實現)

#include

//單鏈表

using

namespace std;

template

<

typename datatype>

struct node

;template

<

typename datatype>

class

linklist

;template

<

typename datatype>

linklist

::linklist()

template

<

typename datatype>

int linklist

::empty()

template

<

typename datatype>

void linklist

::print()

cout<}template

<

typename datatype>

int linklist

::length()

return count;

}template

<

typename datatype>

datatype linklist

::get

(int i)

if(p==

null

)throw

"查詢位置錯誤"

;else

return p-

>data;

}template

<

typename datatype>

int linklist

::locate

(datatype x)

return0;

//退出迴圈,查詢失敗

}template

<

typename datatype>

void linklist

::insert

(int i,datatype x)

if(p==

null

)throw

"插入位置錯誤"

;else

}template

<

typename datatype>

linklist

::linklist

(datatype a,

int n)}/*

templatelinklist::linklist(datatype a,int n)

rear->next=null;//建立完畢,將終端指標置空}*/

template

<

typename datatype>

datatype linklist

::delete1

(int i)

if(p==

null

||p-

>next==

null

)throw

"刪除位置有誤"

;//結點不存在或者結點的後繼結點不存在

else

}template

<

typename datatype>

linklist::~

linklist()

}int

main()

; linklist<

int>

l(a,3)

; cout<<

"輸出當前單鏈表:"

print()

; cout<<

"查詢單鏈表第一位:"

; cout

(char

* str)

cout<<

"輸出插入元素後單鏈表:"

print()

;if(l.empty()

==1)cout<<

"鏈空"

"鏈非空"

}

轉 線性表(順序表和單鏈表)

大神 權侵刪 一 定義 是n個型別相同的資料元素的有限序列。線性表元素的個數n n 0 定義為線性表的長度,當n 0時,稱為空表。在較複雜的線性表中,乙個資料元素可以由若干個資料項組成。三 線性表的順序儲存結構 1 順序儲存定義 線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表的資...

線性表逆置(順序表和單鏈表)

這幾天練習了下線性表的逆置,順序表比較簡單,就是陣列的位置交換。順序表的逆置 單鏈表的逆置 頭插法就地逆置 遞迴順序表的逆置 中間變數temp,交換首位兩個元素的位置。void listreverse sqlist l sqlist status listinit sqlist l status l...

線性表之單鏈表

cpp view plain copy linkedlist linc 2013.2.26 include include include define ok 1 define error 1 define ture 1 define false 0 struct node typedef stru...