C語言實現順序表

2021-07-25 14:55:02 字數 3437 閱讀 7548

標頭檔案部分:

#include

#include

#include

typedef

int datatype;

#define maxsize 10

typedef

struct seqlist

seqlist;

//列印順序表的內容

void printseqlist(seqlist*seq);

// 初始化順序表

void initseqlist(seqlist* seq);

// 在順序表的尾部插入值為data的元素

void pushback(seqlist* pseq, datatype data);

// 刪除順序表的最後乙個元素

void popback(seqlist* pseq);

// 在順序表的頭部插入值為data的元素

void pushfront(seqlist* pseq, datatype data);

// 刪除順序表頭部元素

void popfront(seqlist* pseq);

// 在順序表中pos位置上插入值為data的元素

void insert(seqlist* pseq, size_t pos, datatype data);

// 刪除順序表中pos位置上的元素

void erase(seqlist* pseq, size_t pos);

// 在順序表中查詢值為data的元素,找到返回該元素的位置,否則返回-1

int find(seqlist* pseq, datatype data);

// 刪除順序表中第乙個值為data的元素

void remove(seqlist* pseq, datatype data);

// 刪除順序表中所有值為data的元素

void removeall(seqlist* pseq, datatype data);

// 使用氣泡排序給順序表中的元素排序

void bubblesort(seqlist* pseq);

// 使用選擇排序給順序表中的元素排序

void selectsort(seqlist* pseq);

// 使用二分查詢在順序表中查詢值為data

int binarysearch(seqlist* pseq, datatype data);

函式實現部分:

#include"seqlist.h"

// 列印順序表的內容

void

printseqlist(seqlist*seq)

printf("\n");

}// 初始化順序表

void

initseqlist(seqlist* seq)

seq->size = 0;

}// 在順序表的尾部插入值為data的元素

void

pushback(seqlist* pseq, datatype

data)

int i = pseq->size;

pseq->array[i] = data;

pseq->size++;

}// 刪除順序表的最後乙個元素

void

popback(seqlist* pseq)

pseq->size--;

}// 在順序表的頭部插入值為data的元素

void

pushfront(seqlist* pseq, datatype

data)

int i = 0;

for (i = pseq->size; i > 0; i--)

pseq->array[i] = data;

pseq->size++;

}// 刪除順序表頭部元素

void

popfront(seqlist* pseq)

int i = 0;

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

pseq->size--;

}// 在順序表中pos位置上插入值為data的元素

void

insert(seqlist* pseq, size_t pos, datatype

data)

int i = 0;

for (i = pseq->size; i > pos; i--)

pseq->array[i] = data;

pseq->size++;

}// 刪除順序表中pos位置上的元素

void

erase(seqlist* pseq, size_t pos)

int i = 0;

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

pseq->size--;

}// 在順序表中查詢值為data的元素,找到返回該元素的位置,否則返回-1

intfind(seqlist* pseq, datatype

data)

return -1;

}// 刪除順序表中第乙個值為data的元素

void

remove(seqlist* pseq, datatype

data)

else

printf("error\n");

}// 刪除順序表中所有值為data的元素

void

removeall(seqlist* pseq, datatype

data)

pseq->size -= count;

}// 使用氣泡排序給順序表中的元素排序

void

bubblesort(seqlist* pseq)

}if (!flag)

return;

}}// 使用選擇排序給順序表中的元素排序

void

selectsort(seqlist* pseq)}}

}// 使用二分查詢在順序表中查詢值為data

intbinarysearch(seqlist* pseq, datatype

data)

else

if (pseq->array[mid] > data)

else

}return -1;

}

測試部分:

#include"seqlist.h"

void funtesta()//尾插和尾刪測試函式

void funtestb()//頭插和頭刪測試函式

void funtestc()//任意位置插入、刪除測試函式

void funtestd()//查詢刪除、刪除全部資料,

void funteste()//排序、折半查詢測試函式

int main()

C語言實現順序表

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

C語言實現順序表

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

C語言實現順序表

最近複習了一下資料結構對順序表進行一下複習!include 函式結果狀態 define true 1 define false 0 define ok 1 define error 0 define overflow 2 status 是函式的型別,其值是函式結果狀態 typedef int sta...