資料結構之線性表

2021-09-24 23:19:17 字數 2661 閱讀 5133

基本上和課本上的類c語言差不多。(**注釋的很詳細了哈哈)

mycode:

#include #include #include #include #include using namespace std;

#define list_init_size 100 //線性表儲存空間的初始分配量

#define listincrement 10 //線性表儲存空間的分配增量

typedef structsqlist;

int initlist(sqlist &l)

int destroylist(sqlist &l)

int listempty(sqlist l)

/* 個人感覺這個實在沒啥用

int listlength(sqlist l)

*/int listclear(sqlist &l)

int getelem(sqlist l, int i, int &e)

int locateelem(sqlist l, int e)

int priorelem(sqlist l, int cur, int &pre)

pre = l.elem[i - 1];

return 1;

} }}int nextelem(sqlist l, int cur, int &next)

next = l.elem[i + 1];

return 1;

} }return 0; //cur不是線性表中的元素

}int listinsert(sqlist &l, int i, int e)

int *q = &(l.elem[i-1]);

int *p ;

for(p = &(l.elem[l.length - 1]); p >= q; p--)

*(p+1) = *p; //插入的位置及以後的元素全部後移1位

*q = e;

l.length += 1; //插入後表長+1

return 1;

}int listdelete(sqlist &l, int i, int &e)

l.length--;

return 1;

}int main()

printf("---------------------------------\n");

if (listempty(s)) printf("線性表為空\n");

else printf("此時線性表的表長為: %d\n", s.length);

int e;

getelem(s, 5, e);

printf("第5個元素的值是: %d\n", e);

printf("---------------------------------\n");

priorelem(s, 7, e);

printf("第7個元素的前驅是: %d\n", e);

nextelem(s, 7, e);

printf("第7個元素的後繼是: %d\n", e);

printf("---------------------------------\n");

listdelete(s, 1, e);

printf("刪除1號元素後的表長: %d\n", s.length);

for(int i = 0; i < s.length; i++)

printf("---------------------------------\n");

listclear(s);

printf("清空後s的表長: %d\n", s.length);

destroylist(s);

return 0;

}

執行結果:

開始初始化線性表s

空表長度: 0, 分配儲存大小: 100

---------------------------------

開始進行插入操作

線性表第1個元素插入1

線性表第2個元素插入2

線性表第3個元素插入3

線性表第4個元素插入4

線性表第5個元素插入5

線性表第6個元素插入6

線性表第7個元素插入7

線性表第8個元素插入8

線性表第9個元素插入9

線性表第10個元素插入10

---------------------------------

此時線性表的表長為: 10

第5個元素的值是: 5

---------------------------------

第7個元素的前驅是: 6

第7個元素的後繼是: 8

---------------------------------

刪除1號元素後的表長: 9

第1個元素為:2

第2個元素為:3

第3個元素為:4

第4個元素為:5

第5個元素為:6

第6個元素為:7

第7個元素為:8

第8個元素為:9

第9個元素為:10

---------------------------------

清空後s的表長: 0

hit any key to close this window...

mysql 線性表 資料結構之線性表

概要 參考 大話資料結構 把常用的基本資料結構梳理一下。線性表定義 線性表 list 零個或多個資料元素的有限序列。若將線性表記為 a 1,cdots,a a i,a cdots,a n 則表中 a 領先於 a i a i 領先於 a 稱 a 是 a i 的直接前驅元素,a 是 a i 的直接後繼元...

資料結構之線性表

從現在開始,我們開始討論如何實現一些常用的資料結構和其中的一些經典演算法.等把資料結構講完了.我可能會繼續討論vc 的程式設計只是以及vs平台下的c c 開發等等.呵呵.我們進入正題吧.我在這裡就只實現線性表的連表結構.當然了,這裡實際上包含了好多知識.我希望大家在引用的時候.一定要領悟裡面的一些變...

資料結構之線性表

線性表是具有相同特性的資料元素的乙個有限序列。該序列中所含元素的個數叫做線性表的長度,用n表示,n 0。當n 0時,表示線性表是乙個空表,即表中不包含任何元素。設序列中第i i表示位序 個元素為ai 1 i n 線性表的一般表示為 a1,a2,ai,ai 1,an include include d...