資料結構(c語言版)順序表的實現

2021-10-09 09:33:43 字數 1755 閱讀 7355

資料結構原本的書籍上面只寫了演算法部分,不能直接執行,在此貼上c語言實現的完整**,需要注意的地方已在**中注釋

#include

#include

#define list_size 100

//初始分配空間的節點個數

#define list_increment 10

//新分配空間的節點個數

typedef

int elemtype;

typedef

struct booksqlist;

intinit

(sqlist &l)

l.length =0;

l.list_size = list_size;

l.elem[0]

=null

;//&時候使用.*時候使用->

printf

("順序表初始化成功\n");

return0;

}int

add(sqlist *l)

//判斷當前儲存空間是否已滿

if(l->length>=l->list_size)

l->elem = newbase;

//新的基址

l->list_size +

= list_increment;

//重新整理儲存容量

} elemtype* q =

&(l->elem[i -1]

);//這裡不是i,因為i始終比陣列元素下標大1。

//開始插入操作

for(elemtype* p =

&l->elem[l->length -1]

; p >= q; p--

)//這裡讓p先指向最後乙個節點,依次後移,

//直到p指向第i個節點,即下標為i-1

//注意p--,相當於是p=p-4而不是p=p-1,這和指標p的資料型別有關。

*q = e;

//將e賦值給第i個位置的節點

l->length++

;//表長加1

return0;

}int

remove

(sqlist &l)

l.length--

;//表長減1

return0;

}int

update

(sqlist &l)

void

select

(sqlist* l)

printf

("\n");

printf

("第%d個位置的元素是:\n"

,i);

elemtype* e =

&l->elem[i -1]

;printf

("%d\n"

,*e);}

intmain()

switch

(will)

break

;case

2:status =

remove

(l);

if(status ==0)

break

;case

3:status =

update

(l);

if(status ==0)

break

;case4:

select

(&l)

;break

;default

:break;}

}}return0;

}

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

include define maxn 100 typedef int status using namespace std typedef structsqlist 初始化順序表 status initlist sqlist l 順序表的插入 將要插入的新元素e放到第i個位置 status lis...

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

完整 include includeusing namespace std define maxsize 100 define stepsize 10 define success 1 define error 1 typedef int elemtype int flag 0 用於判斷順序表是否初...

《資料結構》C語言版 順序表的基本操作實現

include include define ok 1 define error 0 define true 1 define false 0 define overflow 1 define list init size 100 define listincrement 10 typedef in...