資料結構 順序表

2021-09-29 13:05:33 字數 3549 閱讀 3417

本博文將分享動態順序表的書寫,**中每個函式功能均以標記清楚

seqlist.**件

#ifndef _seqlist_h__

#define _seqlist_h__

#include

#include

#include

typedef

int datetype;

typedef

struct seqlist

seqlist;

void

seqlistinit

(seqlist* s1, size_t capacity)

;void

seqlistdestory

(seqlist* s1)

;void

seqlistcheck

(seqlist* s1)

;void

seqlistpushback

(seqlist* s1, datetype num)

;void

seqlistpopback

(seqlist* s1)

;void

seqlistpushfront

(seqlist* s1, datetype num)

;void

seqlistpopfront

(seqlist* s1)

;int

seqlistfind

(seqlist* s1, datetype num)

;void

seqlistinsert

(seqlist* s1, size_t poss, datetype num)

;void

seqlisterase

(seqlist* s1, size_t poss)

;void

seqlistprint

(seqlist* s1)

;void

seqlistremove

(seqlist* s1, datetype num)

;void

seqlistbubblesort

(seqlist* s1)

;int

seqlistbinaryfind

(seqlist* psl, datetype x)

;void

seqlistremoveall

(seqlist* psl, datetype x)

;// 時間複雜度:o(n) 空間複雜度 o(1)

#endif

seqlist.c

#include

"seqlist.h"

/*函式功能:初始化

入口引數:結構體指標,初始容量

返回值:無

*/void

seqlistinit

(seqlist* s1,size_t capacity)

/*函式功能:清除函式

入口引數:結構體指標

返回值:無

*/void

seqlistdestory

(seqlist* s1)

/*函式功能:判斷容量是否充足

入口引數:結構體指標

返回值:無

*/void

seqlistcheck

(seqlist* s1)}/*

函式功能:頭插法

入口引數:結構體指標,插入的數字

返回值:無

*/void

seqlistpushfront

(seqlist* s1, datetype num)

s1->_a[0]

= num;

s1->size++;}

/*函式功能:刪除頭資料

入口引數:結構體指標

返回值:無

*/void

seqlistpopfront

(seqlist* s1)

s1->size--;}

/*函式功能:尾插法

入口引數:結構體指標,插入的資料

返回值:無

*/void

seqlistpushback

(seqlist* s1, datetype num)

/*函式功能:刪除尾端的資料

入口引數:結構體指標

返回值:無

*/void

seqlistpopback

(seqlist* s1)

/*函式功能:查詢函式

入口引數:結構體指標、查詢的數字

返回值:該數字的下標或-1

*/int

seqlistfind

(seqlist* s1, datetype num)

return-1

;}/*函式功能:任意位置插入函式

入口引數:結構體指標、插入座標、插入的數字

返回值:無

*/void

seqlistinsert

(seqlist* s1, size_t poss,datetype num)

s1->_a[poss]

= num;

s1->size++;}

/*函式功能:刪除資料函式

入口引數:結構體指標、需要刪除的座標

返回值:無

*/void

seqlisterase

(seqlist* s1, size_t poss)

s1->size--;}

/*函式功能:直接刪除該儲存中的某個資料

入口引數:結構體指標、需要刪除的資料

返回值:無

*/void

seqlistremove

(seqlist* s1, datetype num)}/*

函式功能:氣泡排序現有的資料來源

入口引數:結構體指標

返回值:無

*/void

seqlistbubblesort

(seqlist* s1)}if

(num ==0)

break;}

}/*函式功能:折半查詢法尋找乙個資料

入口引數:結構體指標,查詢的資料

返回值:尋找值的下標或-1

*/int

seqlistbinaryfind

(seqlist* s1, datetype num)

else

if(s1-

>_a[mid]

> num)

}return-1

;}/*函式功能:列印函式

入口引數:結構體指標

返回值:無

*/void

seqlistprint

(seqlist* s1)

printf

("\n");

}

text.c

#include

"seqlist.h"

void

text()

void

text1()

intmain()

資料結構 順序表

順序表的特徵 1由唯一的表名標識 2佔據一塊連續的儲存空間 3資料順序存放,元素之間有先後關係 定義動態的順序表 define maxsize 100 typedef struct sqlist 這個結構體型別存放的是順序表的資訊和順序表的資料 初始化順序表 void initsqlist sqli...

資料結構 順序表

順序表示最簡單的乙個資料結構,直接貼 吧,因為比較簡單。include include typedef struct sqlist sqlist void initlist sqlist l l length 0 void getelem sqlist l 初始化 l length j printf...

資料結構順序表

include include include include include include include include include include include include include include using namespace std define maxn 100000...