順序表是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。線性表採用順序儲存的方式儲存就稱之為順序表,順序表是將表中的結點依次存放在計算機記憶體中一組位址連續的儲存單元中。線性表採用指標鏈結的方式儲存就稱之為鍊錶。
線性表的動態分配順序結構:
typedef
struct seqlist seqlist;
線性表的增刪改查操作:
//確保容量夠用,不需要擴容,什麼都不做
//需要擴容就擴容
//影響函式的鏈結屬性,從外部鏈結屬性->內部鏈結屬性
static
void
checkcapacity
(seqlist *ps)
//需要擴容
int newcapacity = ps->capacity *2;
int*newarray =
(int*)
malloc
(sizeof
(int
)*newcapacity)
;assert
(newarray !=
null);
//搬家
for(
int i =
0; i < ps->size; i++
)//釋放老空間,繫結新空間
free
(ps->array)
; ps->array = newarray;
ps->capacity = newcapacity;
}//順序表的初始化
void
seqlistinit
(seqlist *ps,
int capacity)
ps->array =
malloc
(sizeof
(int
)*capacity)
;assert
(ps->array !=
null);
ps->size =0;
ps->capacity = capacity;
}//順序表的銷毀
void
seqlistdestroy
(seqlist *ps)
//順序表的尾插
void
seqlistpushback
(seqlist *ps,
int v)
//順序表的頭插
void
seqlistpushfront
(seqlist *ps,
int v)
ps->array[0]
= v;
ps->size++;}
//在順序表的特定位置插入值
void
seqlistinsert
(seqlist *ps,
int pos,
int v)
ps->array[pos]
= v;
ps->size++;}
//順序表的尾刪
void
seqlistpopback
(seqlist *ps)
//順序表的頭刪
void
seqlistpopfront
(seqlist *ps)
ps->size--;}
//刪除特定位置的值
void
seqlisterase
(seqlist *ps,
int pos)
ps->size--;}
//順序表的查詢
void
seqlistfind
(seqlist *ps,
int v)
}return-1
;}//順序表的修改
void
seqlistmodify
(seqlist *ps,
int pos,
int v)
//順序表找到指定位置並進行刪除
void
seqlistremove
(seqlist *ps,
int pos,
int v)
seqlisterase
(ps, v);}
//順序表找到指定的值,並將找到的特定值的所有元素都刪除掉
void
seqlistremoveall
(seqlist *ps,
int v)
j++;}
ps->size = j;
}
剛開始學習資料結構,如果有不正確的地方,歡迎指正。 C語言實現順序表
標頭檔案部分 include include include typedef int datatype define maxsize 10 typedef struct seqlist seqlist 列印順序表的內容 void printseqlist seqlist seq 初始化順序表 voi...
C語言實現順序表
順序表是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。線性表採用順序儲存的方式儲存就稱之為順序表。順序表是將表中的結點依次存放在計算機記憶體中一組位址連續的儲存單元中。這裡我用c語言實現了一下順序表的具體操作。其中用了一些c 的小語法。所以有可能不...
C語言實現順序表
使用c語言實現順序表 順序表的主要功能有 1 初始化順序表 2 順序表的頭插 3 順序表的尾插 4 順序表的頭刪 5 順序表的尾刪 6 順序表的任意點插入 7 順序表的查詢刪除 8 順序表的排序 9 清空順序表 10 列印順序表 具體 實現如下 seqlist.h include include i...