順序表實現

2021-09-22 20:08:38 字數 1698 閱讀 4833

順序表是最簡單的資料結構之一。常見的操作就是建表、增刪改查。

採用順序儲存結構,也就是陣列,這樣隨機訪問。

增刪需要移動大量元素,時間複雜度o(n)。

順序查詢的時間複雜度也是o(n),不過誰會那麼傻,通常都先排序一遍,然後二分查詢。

**很簡單,基本就是嚴蔚敏那本書,可以參照著看。

#include #include #include using namespace std;

// 順序表的實現

#define list_init_size 100

#define listincrement 10

#define overflow 1

typedef int elemtype;

typedef bool status;

#define ok true;

#define fail false;

typedef struct sqlist;

status initlist(sqlist &l)

status createlist(sqlist &l, elemtype* data, int size)

// 其實就是遍歷順序表,效率低下,按值查詢通常要先排序

int locateelem(sqlist l, elemtype x)

for(int j=l.length-1; j>=i-1; j--)

l.elem[j+1] = l.elem[j];

l.elem[i-1] = e;

l.length++;

return ok;

}status listdelete_sq(sqlist &l, int i, elemtype &e)

void print(sqlist l)

void destroylist(sqlist &l)

l.elem = null;

}int main() ;

int size = sizeof(testcase) / sizeof(elemtype);

sqlist myl;

initlist(myl);

print(myl);

createlist(myl, testcase, size);

print(myl);

printf("\nget element by index\n");

for(int i=1; i<=size; i++)

printf("\n\nget location of element\n");

printf("index: %d\n", locateelem(myl, 12));

printf("index: %d\n", locateelem(myl, 9913));

printf("\n\ninsert element\n");

listinsert_sq(myl, 5, 10);

print(myl);

for(int i=0; i<100; i++)

listinsert_sq(myl, 5, i);

print(myl);

printf("\n\n刪除性測試\n");

elemtype e;

for(int i=1; i<=5; i++)

destroylist(myl);

return 0;

}

實現順序表

順序表是在計算機記憶體中以陣列的形式儲存的線性表,線性表的順序儲存是指用一組位址連續的儲存單元依次儲存線性表中的各個元素 使得線性表中在邏輯結構上相鄰的資料元素儲存在相鄰的物理儲存單元中,即通過資料元素物理儲存的相鄰關係來反映資料元素之間邏輯上的相鄰關係,採用順序儲存結構的線性表通常稱為順序表。pu...

實現順序表

include include define elemtype int define maxsize 10 順序表最大長度 define initsize 5 順序表初始的長度 typedef structsqlist int initlist sqlist l elemtype p l data ...

順序表 陣列實現

description 順序表 version 1.0 author meify 2013 7 30 上午9 43 45 public class arraylist 獲取當前線性表的大小 public int getsize 往線性表中index位置插入一條資料 public void inser...