資料結構 線性表之順序表總結

2021-10-05 14:01:43 字數 2437 閱讀 4312

1、 靜態分配

//1、宣告

#define

maxsize

50//定義線性表的最大長度

typedef

struct

sqlist;

//順序表的型別定義

靜態分配使用舉例

#

include

#define

maxsize

50//定義線性表的最大長度

typedef

struct

sqlist;

//順序表的型別定義(靜態分配方式)

//2、初始化操作(乙個靜態分配的順序表)

void

initlist

( sqlist &l )

intmain()

注:

順序表的初始化中的步驟2,可省略;步驟1、3是必須有的

可省略的原因是,在訪問順序表中的元素時,應該不超過其表長length,而原**中直接訪問到了最大容量,這是不合理的。

2、動態分配

#

define

initsize

100//順序表的初始長度

typedef

struct

seqlist;

//順序表的型別定義(動態分配方式)

動態分配使用舉例

//1、宣告

#include

#define

initsize

100//順序表的初始長度

typedef

struct

seqlist;

//順序表的型別定義(動態分配方式)

//2、初始化(乙個動態分配的順序表)

void

initlist

( seqlist &l )

//增加動態陣列的長度

void

increasesize

( seqlist &l,

int len )

l.maxsize = l.maxsize + len;

//順序表最大長度增加len

free

(p);

//釋放原來的記憶體空間

}int

main()

注:

動態分配的原理:開闢一段新空間,將舊空間的資料複製到新空間中

靜態分配和動態分配的區別:

動態分配使用的陣列儲存資料,宣告之後陣列的大小就不可更改

動態分配使用malloc和free函式動態申請和釋放記憶體空間,並使用指標來指向這段記憶體空間

1、 插入——o(n)

//3、插入操作

bool listinsert

(sqlist &l,

int i, elemtype e)

注:

注意插入元素時,其後面的元素從後向前依次後移

注意順序表位序和陣列下標的差別:位序從1開始,下標從0開始。所有在第i個位置插入e為——l.data[i-1] = e;

2、刪除——o(n)

//4、刪除操作

//刪除順序表l中第i個位置的元素,若成功返回true,並將被刪除的元素用e返回,否則返回flase

bool listdelete

(sqlist &l,

int i, elemtype &e)

//舉例

intmain()

2>按值查詢——o(n)

//6、按值查詢

//在順序表中找到第乙個元素值等於e的元素,並返回其位序

intlocateelem

(sqlist l, elemtype e)

return0;

}

4、其他基本操作

//7、求表長

length

(l);

//返回線性表l的長度,即表中資料元素的個數

//8、輸出操作

printlist

(l);

//按前後順序輸出線性表l的所有元素值

//9、判空操作

empty

(l);

//若l是空表,返回true,否則返回false

//10、銷毀操作

destroylist

(&l)

;//銷毀線性表,並釋放其所占用的記憶體空間

資料結構線性表之順序表

純手打順序表相關操作,包括順序表的建立 初始化 輸出 插入 刪除 銷毀等,僅供自己回顧使用,可能會有不對的或者不恰當的地方望大家指正,共同學習。如下 資料結構順序表 include include include define maxsize 100 using namespace std type...

資料結構 線性表之順序表

線性表是包含若干資料元素的乙個線性序列 記為 l a0,ai 1,ai,ai 1 an 1 l為表名,ai 0 i n 1 為資料元素 n為表長,n 0 時,線性表l為非空表,否則為空表。線性表l可用二元組形式描述 l d,r 即線性表l包含資料元素集合d和關係集合r d r 關係符在這裡稱為有序對...

mysql 線性表 資料結構 線性表之順序線性表

public class sequencelist else stringbuilder sb new stringbuilder for int i 0 i size i int len sb.length public class sequencelisttest public static v...