C語言實現的順序表

2022-07-21 18:21:11 字數 2543 閱讀 6017

順序表是用一段位址連續的儲存單元依次儲存資料元素的線性結構。順序錶可分為靜態儲存和動態儲存,靜態順序表比較簡單,資料空間固定,而動態順序表可以動態增容,便於存放大量資料,現主要把動態的基本實現一下~此處的排序簡單實現了一下,後面會整理出各種排序~~

//順序表的靜態儲存

typedef struct seqlist_s

seqlist_s;

//順序表的動態儲存

typedef struct seqlist_d

seqlist_d;

//檢查容量,增容

void checkcapacity(seqlist_d *pseq)

pseq->array = temp;

}else

}

//初始化

int initseqlist_d(seqlist_d* pseq)

pseq->size = 0;

pseq->capacity = init_size;

return 1;

}

//查詢

size_t find(seqlist_d* pseq, datatype x)

}if (pos >= pseq->size)

return pos;

}

//尾插

void pushback(seqlist_d* pseq, datatype x)

//插入

void insert(seqlist_d* pseq, size_t pos, datatype x)

datatype* temp = pseq->array + pseq->size - 1;

while (temp >= (pseq->array + pos))

////也可以這樣移動

//for (size_t i = pseq->size - 1; i >= pos; i--)

//

*(pseq->array + pos) = x;

pseq->size++;

}

//刪除pos位置的資料

void erase(seqlist_d* pseq, size_t pos)

for (size_t i = pos; i < pseq->size; i++)

pseq->size--;

}

//刪除找到的第乙個x

void remove(seqlist_d* pseq, datatype x)

else

pseq->size--;

}}

//刪除所有的x(有優化)

用second指標遍歷順序表,用first指標記錄刪除後的順序表。

當second指標不是指向所要刪除的資料3時,second指向的資料賦給first指向的資料,first指標和second指標同時向後指;

當second指標指向所要刪除的資料3時,first指標不動,count計數加1,second指標繼續向後指。

這樣就把資料刪除了~~~這種方法比找到乙個就挪動一次順序表要高效一些。。。

//排序(從小到大)

void sort(seqlist_d* pseq)

datatype temp;

bool flag = true;

for (size_t i = 0; (i < pseq->size - 1) && flag; i++) //進行size-1趟排序}}

}

//二分查詢(非遞迴)

int binarysearch(seqlist_d* pseq, datatype x)

else if (*(pseq->array + mid) > x) //x在前半部分

else

}return -1;

}

//二分查詢(遞迴)

int _binarysearch_r(seqlist_d* pseq, int left, int right, datatype x)

else if (pseq->array[mid] > x)

else

}return -1;

}int binary_r(seqlist_d* pseq, datatype x)

C語言實現順序表

標頭檔案部分 include include include typedef int datatype define maxsize 10 typedef struct seqlist seqlist 列印順序表的內容 void printseqlist seqlist seq 初始化順序表 voi...

C語言實現順序表

順序表是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。線性表採用順序儲存的方式儲存就稱之為順序表。順序表是將表中的結點依次存放在計算機記憶體中一組位址連續的儲存單元中。這裡我用c語言實現了一下順序表的具體操作。其中用了一些c 的小語法。所以有可能不...

C語言實現順序表

使用c語言實現順序表 順序表的主要功能有 1 初始化順序表 2 順序表的頭插 3 順序表的尾插 4 順序表的頭刪 5 順序表的尾刪 6 順序表的任意點插入 7 順序表的查詢刪除 8 順序表的排序 9 清空順序表 10 列印順序表 具體 實現如下 seqlist.h include include i...