資料結構之順序表

2021-10-16 08:18:47 字數 3914 閱讀 9324

完整實現

靜態順序表:使用定長陣列儲存。

動態順序表:使用動態開闢的陣列儲存。

靜態順序表只適用於確定知道需要存多少資料的場景。靜態順序表的定長陣列導致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...