線性表順序儲存

2021-08-21 11:17:26 字數 1767 閱讀 7443

時間複雜度效率

o(1) > o(logn) > o(n) > o(nlogn) > o(n^2) > o(n^3) > o(2^n) > o(n!) > o(n^n) 

線性表順序儲存

// 線性表----順序儲存 

#include #include #define maxsize 1024

typedef int elementtype;

typedef struct

sqlist;

sqlist * initlist(sqlist * l); // 初始化線性表(空表)

int getelem(sqlist * l, int i, elementtype * e); // 獲取線性表l第i個元素給e

int listinsert(sqlist * l, int i, elementtype e); // 插入元素

int listdelete(sqlist * l, int i, elementtype * e); // 刪除元素

int printlist(sqlist * l); // 遍歷線性表

int clearlist(sqlist * l);        // 清空線性表

int destorylist(sqlist * l);         // 銷毀線性表

int main()

listinsert(l, 1, 999);

listinsert(l, 2, 888);

listinsert(l, 3, 777);

printlist(l);

printf("\n清空線性表...\n");

clearlist(l);

printlist(l);

}// 初始化順序表(空表)

sqlist * initlist(sqlist * l)

return l;

} // 獲取線性表l第i個元素給e

int getelem(sqlist * l, int i, elementtype *e)

*e = l->data[i-1];

return 1;

} // 插入元素

int listinsert(sqlist * l, int i, elementtype e)

if (i<1 || i>l->length + 1)

if (i<=l->length)

} l->data[i-1] = e;

l->length++;

return 1;

}// 刪除元素

int listdelete(sqlist * l, int i, elementtype *e)

if (i<1 || i>l->length)

*e = l->data[i-1];

if (ilength)

} l->length--;

return 1;

} // 遍歷線性表

int printlist(sqlist * l)

for (int i = 0; i< l->length; i++)

} return 1;

} // 清空線性表

int clearlist(sqlist * l)

// 銷毀線性表

int destorylist(sqlist * l)

線性表順序儲存

線性表順序儲存結構的建立 插入結點 刪除結點 就地逆置。include stdio.h include malloc.h typedef struct slist,list void init list 線性表初始化 void insert list s,int p 線性表插入 void delet...

線性表順序儲存

我們來談一下線性表的順序儲存結構 圖示 1 存在唯一的開始結點 2 存在唯一的終端結點 3 除了終端結點和開始結點,其間的每乙個結點都有乙個直接前驅和乙個直接後繼 順序儲存 圖例 c 實現 include linklisthead.h void menu int main break case 2 ...

線性表的順序儲存 線性表的順序儲存結構

1,本文實現乙個線性表 2,順序儲存定義 1,線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表中的資料元素 2,在 c 中可以用乙個陣列作為介質來儲存資料元素 3,設計思路 1,可以用一維陣列實現順序儲存結構 1,儲存空間 t m array 2,當前長度 int m length...