資料結構 順序表

2021-10-22 10:24:45 字數 1475 閱讀 8802

剛接觸資料結構是,因當理解以下概念

資料結構:就是存在一種或多種關係的資料元素的集合

理解:在計算機上記憶體上儲存多個(型別相同的)資料元素,需要通過某種方式(關係)將這些資料元素組織到一塊(集合),還有針對於這些結構的一些操作方法(增刪查改)。

分類

集合(資料元素之間沒有任何關係,僅僅是在乙個容器中)

線性結構:資料元素之間是一對一的關係(排隊)*

樹形結構:資料元素之間是一對多的關係(二叉樹)

圖形結構或網狀結構:多對多的關係

資料結構的基本操作:初始化、銷毀、插入、刪除、查詢、得出儲存元素個數、判空、判滿…

讓我們先來了解一下資料結構中的順序表:

特點:在邏輯上是連續的,在物理儲存上也是連續的

順序表中的資料元素必須從空間的首位置開始儲存,必須連續儲存,中間不能有空的空間。

初始化順序表

bool

initsqlist

(sqlist *sq,

int init_size)

插入資料:有按位置插入,頭部插入,尾部插入

bool

insertofpos

(sqlist *sq,datatype value,

int pos)

//在pos位置實現資料插入

sq->data[pos]

=value;

//在pos位置插入資料

sq->length++

;//必須將長度加1;}}

bool

insertoffront

(sqlist *sq,datatype value)

bool

insertofrear

(sqlist *sq,datatype value)

//在當前的length插入

其中按位置插入還需要進行空間判滿操作和擴容,**如下:

static

bool

isfull

(sqlist *sq)

static

bool

(sqlist *sq)

//擴容函式

free

(sq-

>data)

;//釋放原空間,否則會出現記憶體洩露

sq->data=new_space;

//指向新的空間

sq->size=size;

//return

true

;}

最後是銷毀順序表,防止野指標的出現。

bool

destroysqlist

(sqlist *sq)

剩下的是一些簡單的輸出操作,相信大家可以自己完成。

資料結構 順序表

順序表的特徵 1由唯一的表名標識 2佔據一塊連續的儲存空間 3資料順序存放,元素之間有先後關係 定義動態的順序表 define maxsize 100 typedef struct sqlist 這個結構體型別存放的是順序表的資訊和順序表的資料 初始化順序表 void initsqlist sqli...

資料結構 順序表

順序表示最簡單的乙個資料結構,直接貼 吧,因為比較簡單。include include typedef struct sqlist sqlist void initlist sqlist l l length 0 void getelem sqlist l 初始化 l length j printf...

資料結構順序表

include include include include include include include include include include include include include include using namespace std define maxn 100000...