順序表與鏈式表 如何用類實現

2021-10-24 14:38:16 字數 3907 閱讀 8949

順序表:

#include

using

namespace std;

const

int max_n =

1000

;class

seqlist

seqlist

(int ca,

int b);~

seqlist()

intlength()

intget

(int i)

;//按位查詢

intlocate

(int x)

;//按值查詢

void

insert

(int q,

int m)

;//第q個元素插入數值m

ints_delete

(int i)

;//刪除第i個元素

void

printlist()

;//按照順序輸出各元素

private

:int a[max_n]

;int length;};

seqlist::

seqlist

(int ca,

int b)

for(

int i =

0; i < b; i++

) length = b;

}int seqlist::

get(

int i)

int seqlist::

locate

(int x)

}void seqlist::

insert

(int q,

int m)

if(q > length || q <1)

for(

int i = length; i >=q; i--

) length++

; a[q -1]

= m;

}int seqlist::

s_delete

(int i)

if(i<

1|| i>length)

int q = a[i -1]

;for

(int j = i -

1; j < length-

1; j++

) length--

;return q;

}void seqlist::

printlist()

cout << endl;

}int

main()

; seqlist q

(a,10);

q.printlist()

;int c=q.

get(4)

; cout <<

"第四個元素是:"

<< c << endl;

q.insert(4

,22);

q.printlist()

;int m=q.

length()

; cout <<

"length="

<< m << endl;

q.s_delete(7

);int d=q.

locate(12

);cout <<

"12的位置是:"

<< d << endl;

q.printlist()

; q.

s_delete(0

);return0;

}

鏈式表:
#include

using

namespace std;

struct node

;class

linklist

;linklist::

linklist()

//無參構造

/*linklist::linklist(int a, int n)//頭插法

}*/linklist::

linklist

(int a,

int n)

//尾插法

r->next =

null;}

linklist::

~linklist()

//析構函式

}int linklist::

length()

//返回長度

return count;

}int linklist::

get(

int i)

//按位查詢

if(s ==

null

)return s-

>data;

}int linklist::

locate

(int x)

//按值查詢

return0;

}void linklist::

insert

(int i,

int x)

//插入結點

if(s ==

null

) cout <<

"位置"

<< endl;

else

}int linklist::

idelete

(int i)

//刪除元素

if(s ==

null

||s-

>next==

null

) node* q = s-

>next;

int x = q-

>data;

s->next = q-

>next;

delete q;

return x;

}void linklist::

printlist()

cout << endl;

}int

main()

; linklist q

(a,10);

cout <<

"鏈式表元素:"

; q.

printlist()

; cout<<

"第五個元素是:"

"元素12在表中位置是:"

)

"length:"

,99);

cout <<

"插入乙個元素後length:"

<< q.

length()

"鏈式表元素:"

; q.

printlist()

; q.

idelete(9

);cout <<

"刪除第9個元素後鏈式表元素為:"

; q.

printlist()

;return0;

}

對陣列元素倒置:
void seqlist

::inversion()

}

對鍊錶元素倒置:
void seqlist

::inversion()

}

無頭結點的單鏈表上實現線性表的插入操作的演算法和帶頭結點的單鏈表上的插入操作的演算法
void linklist

::insert

(int i,datatype x)

if(s==

null

)else

}void linklist

::insert

(int i,datatype x)

else

if(p==

null

)else

}}

大數加法順序表及鏈式表的實現

資料結構作業一 大數加法的順序表 陣列 實現 include using namespace std const int maxn 5000 大整數最大精度 class big int 大整數類 構造一 big int big int a 建構函式 big int 析構 big int operat...

如何用鍊錶實現棧?

棧 stack 又名堆疊,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元...

順序表的 鏈式儲存(鍊錶)

一.單鏈表節點的型別定義 typedef int elemtype typedef struct node lnode,linklist lnode h,p linklist h,p 其中 p 表示p指向的節點 p data p data表示p指向節點的資料域 p next p next表示p指向節...