資料結構 順序表構建及其基本操作

2021-10-22 09:47:19 字數 2008 閱讀 2686

總述

順序表是最簡單的資料結構之一,在計算機中順序表一般以陣列的形式儲存,我們都知道陣列是線性儲存的,因此順序表也是線性儲存的,線性表的連續儲存值得是在計算機中用一塊連續的儲存空間儲存線性表的元素,所以線性表的相鄰元素是儲存在連續的儲存單元上的。

順序表的儲存結構

typedef

struct

sqlist;

順序表基本操作的實現

1.順序表的初始化

int

initlist

(sqlist& l)

2.順序表的取值

傳入乙個序號i,然後根據傳入資料i獲取到該順序表第i個元素的值。

(可以直接通過陣列下標定位到第i個資料元素)

(1):判斷i是否合理(即是否在表長合理範圍內)

(2):如果i值合理,則把第i個資料元素賦值給引數,返回該引數即可

**實現:

int

getelem

(sqlist l,

int i, elemtype& e)

e = l.elem[i -1]

;return1;

}

3.順序表的查詢

給出指定元素的值,然後查詢該順序表中,查詢成功則返回該元素在表中的位置

(1):遍歷該錶,和傳進來的資料進行比較,如果查詢到返回該元素序號,查詢失敗返回0

**實現:

int

locateelem

(sqlist l, elemtype e)

return0;

}

4.順序表的插入

即在傳入的第i個位置插入乙個新的資料元素。

(1):判斷插入位置是否合法

(2):判斷順序鍊錶的儲存空間是否已滿

(3):將第i到第n個資料依次向後挪乙個位置

(4) : 將待插入元素放入第i個位置

(5):表長加一

**實現:

int

listinsert

(sqlist& l,

int i, elemtype e)

if(l.length = maxsize)

for(

int j = l.length -

1;j >= i -

1;j--

) l.elem[i -1]

= e;

++l.length;

return1;

}

6.順序表的刪除

該操作是將傳進來的第i個元素刪除,然後將表的長度變為n-1個。

(1):判斷穿進來的i是否合法

(2):將i+1到第n個元素依次向前挪動乙個如果被刪除元素為該順序鍊錶的最後乙個,則不用向前挪動。

(3):表長-1.

**實現:

bool

listdelete

(sqlist& l,

int i)

for(

int j = i;j <= l.length -

1;j++

)--l.length;

return

true

;}

7.順序表的新增資料

傳入乙個n,這個n為新增資料數量,然後根據迴圈依次向後新增資料。

(1):判斷n是否在合法範圍內,即n是否大於0或小於該順序鍊錶的最大儲存值。

(2):迴圈向表內新增資料,表長依次+1.

**實現:

bool

createlist

(sqlist& l,

int n)

printf

("sucess!!");

return

true

;}

總結

這即使順序表基本操作,順序表算是資料結構這門課中比較簡單的一種資料結構,博主也是初學者,如有不對希望大家批評指正。

資料結構 鍊錶及其基本操作

鍊錶有查詢 刪除 插入 排序 等等一系列的操作 首先還是要先從定義開始 include include struct kk void hh struct kk he 此函式為刪除鍊錶的記憶體 free he return null 排序 鍊錶可以像陣列一樣也可以對其中的值進行排序 公升序或降序 由於...

資料結構 順序表 鍊錶 基本操作

ifndef slist h define slist h include include include typedef int sltdatatype typedef struct slistnode slistnode typedef struct slist slist void slist...

資料結構 順序表的基本操作

計算機中線性表的存放結構主要有兩種 順序儲存結構和鏈式儲存結構。採用前者存放方式的線性表是順序表,採用後者的就是我們平時所說的鍊錶 線性鍊錶 這裡先對順序表的一些基本操作進行歸納和總結,鍊錶的將在後面的文章中歸納總結。順序表的表示,一般都是借助一維陣列。c 語言定義其結構如下 const int m...