資料結構原本的書籍上面只寫了演算法部分,不能直接執行,在此貼上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...