基礎資料結構 一 最全 定長順序表的實現

2021-10-10 11:22:59 字數 2624 閱讀 8235

定義

順序表:是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。線性表採用順序儲存的方式儲存就稱之為順序表。順序表是將表中的結點依次存放在計算機記憶體中一組位址連續的儲存單元中。

儲存結構:

儲存的資料但在邏輯上是連續的,在儲存 的物理空間上是不連續的。每個資料都有乙個直接前驅和後繼(除了第乙個和最後乙個)

定長順序表:

儲存的資料在邏輯上是連續的,在儲存的物理空間上也是連續的。類似於陣列

圖例如下

功能的實現

1、初始化

2、插入

3、頭插

4、尾插

5、按位置刪除

6、頭刪

7、尾刪

8、按值刪除

9、按值查詢

10、銷毀

結構體

#define initsize 100

typedef

int elemtype;

typedef

struct

fixedsqlist;

初始化

void

fixedsqlistinit

(fixedsqlist *sq)

//初始化

sq->data =

(elemtype*

)malloc

(sizeof

(elemtype)

* initsize);if

(sq->data ==

null

) sq->length =0;

}

插入

void

fixedsqlistinsert

(fixedsqlist *sq, elemtype val,

int pos)

//對pos值合法性的判斷

if(pos<

0|| pos>sq->length)

//將pos位置之後(包括pos位置)的元素統一向後挪動乙個位置

for(

int i = sq->length; i > pos;

--i)

//將val值儲存到以pos作為下標的位置

sq->data[pos]

= val;

sq->length++

;}

頭插

void

fixedsqlistinserthead

(fixedsqlist * sq, elemtype val)

尾插

void

fixedsqlistinserttail

(fixedsqlist *sq, elemtype val)

按位置刪除

void

fixedsqlistdeletepos

(fixedsqlist *sq,

int pos)

for(

int i = pos; i < sq->length -1;

++i)

sq->length--

;}

頭刪

void

fixedsqlistdeletehead

(fixedsqlist* sq)

尾刪

void

fixedsqlistdeletetail

(fixedsqlist* sq)

按值刪除

void

fixedsqlistdeletevalue

(fixedsqlist *sq,elemtype val)

else

sq->data[i]

= sq->data[i + count];}

sq->length-

=count;

}

按值查詢

int

findvaluelast

(fixedsqlist *sq, elemtype val)

}return index;

}

銷毀

void

fixedsqlistdestroy

(fixedsqlist *sq)

資料結構,定長順序表

typedef struct seqlist 定長順序表 seqlist,pseqlist 44 初始化順序表ps void initseqlist pseqlist ps pseqlist seqlist ps length 0 有效資料個數為0 判斷順序表是否為滿 static bool isf...

資料結構 不定長順序表

順序表是在計算機記憶體中以陣列的形式儲存的線性表,所以順序表的儲存結構和陣列非常類似,而它最顯要的特點就是邏輯位址和實體地址都相連。alterlist.h pragma once pragma once是乙個比較常用的c c 預處理指令,只要在標頭檔案的最開始加入這條預處理指令,就能夠保證標頭檔案只...

資料結構 順序表(二) 不定長順序表

一 匯入 二 儲存結構 與定長的順序表的儲存結構相比較,不定長的順序表只增加乙個元素listsize 用於記錄當前順序表的總長度 具體結構如下圖所示 結構定義 typedef struct dseqlist int elem 指向存放資料的動態陣列 int length 有效資料個數 int lis...