完整實現
靜態順序表:使用定長陣列儲存。
動態順序表:使用動態開闢的陣列儲存。
靜態順序表只適用於確定知道需要存多少資料的場景。靜態順序表的定長陣列導致n定大了,空間開多了浪費,開少了不夠用。所以很少使用。
#define n 1024
#include
typedef
int sldatatype;
typedef
struct seqlist
seqlist;
typedef
int sldatatye;
typedef
struct seqlistseqlist;
初始化順序表void
init
(seqlist* sl)
銷毀順序表void
destroyseqlist
(seqlist* sl)
}}
刪除指定位置資料void
erase
(seqlist* sl,
int pos)
if(pos >=
0&& pos <= sl->size)
--sl->size;
}}
列印順序表void
printseqlist
(seqlist* sl)
printf
("\n");
}
檢查順序表容量void
checkcapicity
(seqlist* sl)
if(sl->capicity == sl->size)
}
順序表的尾插void
pushback
(seqlist* sl, sldatatye val)
順序表的尾刪void
popback
(seqlist* sl)
if(sl->size >0)
}
順序表的頭插void
pushfront
(seqlist* sl, sldatatye val)
checkcapicity
(sl)
;for
(int end = sl->size; end >0;
--end)
sl->arr[0]
= val;
sl->size++
;}
順序表的頭刪void
popfront
(seqlist* sl)
for(
int start =
1; start < sl->size;
++start)
--sl->size;
}
順序表的插入void
insert
(seqlist* sl,
int pos, sldatatye val)
if(pos >=
0&& pos <= sl->size)
sl->arr[pos]
= val;
sl->size++;}
}
順序表的查詢int
findidx
(seqlist* sl,sldatatye val)
}return-1
;}
標頭檔案:seqlist.h
typedef
int sldatatye;
typedef
struct seqlistseqlist;
void
init
(seqlist* sl)
;void
destroyseqlist
(seqlist* sl)
;void
erase
(seqlist* sl ,
int pos)
;void
printseqlist
(seqlist* sl)
;void
checkcapicity
(seqlist* sl)
;void
pushback
(seqlist* sl, sldatatye val)
;void
popback
(seqlist* sl)
;void
pushfront
(seqlist* sl, sldatatye val)
;void
popfront
(seqlist* sl)
;void
insert
(seqlist* sl,
int pos, sldatatye val)
;int
findidx
(seqlist* sl, sldatatye val)
;
原始檔
#include
#include
#include
#include
"seqlist.h"
void
init
(seqlist* sl)
void
destroyseqlist
(seqlist* sl)}}
void
erase
(seqlist* sl,
int pos)
if(pos >=
0&& pos <= sl->size)
--sl->size;}}
void
printseqlist
(seqlist* sl)
printf
("\n");
}void
checkcapicity
(seqlist* sl)
if(sl->capicity == sl->size)
}void
popfront
(seqlist* sl)
for(
int start =
1; start < sl->size;
++start)
--sl->size;
}void
pushfront
(seqlist* sl, sldatatye val)
checkcapicity
(sl)
;for
(int end = sl->size; end >0;
--end)
sl->arr[0]
= val;
sl->size++;}
void
popback
(seqlist* sl)
if(sl->size >0)
}void
pushback
(seqlist* sl, sldatatye val)
void
insert
(seqlist* sl,
int pos, sldatatye val)
if(pos >=
0&& pos <= sl->size)
sl->arr[pos]
= val;
sl->size++;}
}int
findidx
(seqlist* sl, sldatatye val)
}return-1
;}
資料結構之順序表
首先是標頭檔案seqlist.h ifndef seqlist h define seqlist h include includeusing namespace std define elemtype int define seqlist default size 10 typedef struc...
資料結構之順序表
順序表的思想容易了解,但是 不容易掌握,我這裡根據老師所提供的 進行一下簡單的總結 這個 包含順序表的查詢,插入,刪除,建表,輸出資料 includeusing namespace std define ok 1 define error 0 define overflow 2 typedef in...
資料結構之順序表
順序表就是按照順序儲存方式儲存的線性表,該線性表的結點按照邏輯次序一次存放在計算機的一組連續的儲存單元中如下圖 由於順序表是一次存放的,只要知道了該順序表的首位址以及每個資料元素所占用的儲存長度,那麼我們就很容易計算出任何乙個資料元素 也就是資料繫結點 的位置。1 結點資料型別 public cla...