資料結構 順序表(C語言實現)

2021-09-23 14:25:46 字數 2853 閱讀 8651

順序表是用一段實體地址連續的儲存單元依次儲存資料元素的線性結構,一般情況下採用陣列儲存。在陣列上完成資料的增刪查改。順序表一般可以分為靜態順序表(使用定長陣列儲存)和動態順序表(使用動態開闢的陣列儲存)。本次實現的是動態順序表,具體**如下:

common.h

#include #include #include
seqlist.h(函式宣告檔案)

#pragma once

#include "common.h"

typedef int sldatatype;

//順序表的動態儲存

typedef struct seqlist

seqlist;

//基本增刪查改介面

void seqlistinit(seqlist* ps, size_t capacity);

void seqlistdestory(seqlist* ps);

void seqlistprint(seqlist* ps);

void checkcapacity(seqlist* ps);

void seqlistpushback(seqlist* ps, sldatatype x);

void seqlistpopback(seqlist* ps);

void seqlistpushfront(seqlist* ps, sldatatype x);

void seqlistpopfront(seqlist* ps);

//在pos的位置插入資料

void seqlistinsert(seqlist* ps, size_t pos, sldatatype x);

//刪除pos位置的資料

void seqlisterase(seqlist* ps, size_t pos);

int seqlistfind(seqlist* ps, sldatatype x);

size_t seqlistsize(seqlist* ps);

int seqlistempty(seqlist* ps);

//修改pos位置的資料

void seqlistmodify(seqlist* ps, size_t pos, sldatatype x);

//氣泡排序

void seqlistbubblesort(seqlist* ps);

int seqlistbinaryfind(seqlist* ps, sldatatype x);

void seqlistremoveall(seqlist* ps, sldatatype x);

void seqlisttest1();

void seqlisttest2(

seqlist.c(函式實現檔案)

include "seqlist.h"

void seqlistinit(seqlist* ps, size_t capacity)

void seqlistdestory(seqlist* ps)

}void checkcapacity(seqlist* ps)

}void seqlistpushback(seqlist* ps, sldatatype x)

void seqlistpopback(seqlist* ps)

void seqlistpushfront(seqlist* ps, sldatatype x)

ps->_array[0] = x;

ps->_size++;*/

seqlistinsert(ps, 0, x);

}void seqlistpopfront(seqlist*ps)

ps->_size--;*/

seqlisterase(ps, 0);

}void seqlistinsert(seqlist* ps, size_t pos, sldatatype x)

*/ size_t end = ps->_size;

while (end > pos)

ps->_array[pos] = x;

ps->_size++;

}void seqlisterase(seqlist* ps, size_t pos)

ps->_size--;

}int seqlistfind(seqlist* ps, sldatatype x)

return -1;

}size_t seqlistsize(seqlist* ps)

int seqlistempty(seqlist* ps)

void seqlistmodify(seqlist* ps, size_t pos, sldatatype x)

void seqlistbubblesort(seqlist* ps)

} --finish; }}

int seqlistbinaryfind(seqlist* ps, sldatatype x)

else if (ps->_array[mid] > x)

else

}return -1;

}void seqlistremoveall(seqlist* ps, sldatatype x)

++cur;

} ps->_size = dst;

}void seqlistprint(seqlist* ps)

printf("\n");

}void seqlisttest1()

void seqlisttest2()

test.c(測試檔案)

#include "seqlist.h"

int main()

資料結構 順序表(C語言實現)

順序表的定義是 把線性表中所有表項按照其邏輯順序依次儲存到從計算機儲存中指定儲存位置開始的一塊連續的儲存空間中。這樣,線性表中第乙個表項的儲存位置就是被指定的儲存位置,第i個表項 2 i n 的儲存位置緊接在第i 1個表項的儲存位置的後面。假設順序表中每個表項的資料型別為t,則每個表項所占用儲存空間...

C語言實現順序表 資料結構

include include 需求,寫乙個順序線性表,儲存乙個位址位置 define list init size 100 線性表儲存空間的初始分配量 define listincrement 10 線性表儲存空間的分配增量 define true 1 define false 0 define ...

資料結構順序表(C語言實現)

標頭檔案和函式申明 include include include typedef struct arr 定義了乙個資料型別,該資料型別的名字叫做struct arr,該資料型別含有三個成員pbase,len,cnt arr void init arr arr parr,int length arr...