資料結構 動態順序表

2021-08-19 01:21:15 字數 2434 閱讀 2178

#pragma  once 

#include#include#includetypedef int datatype;

typedef struct seqlist

seqlist,*psseqlist;

void seqlistinit(psseqlist ps,int capacity); //初始化鍊錶

void checkcapacity(psseqlist ps); //對順序表表進行增容

void seqlistpushback(psseqlist ps, datatype data); //尾插

void seqlistpopback(psseqlist ps); //尾刪

void seqlistinsert(psseqlist ps, int pos, datatype data); //任意位置插入

void seqlisterase(psseqlist ps, int pos); //任意位置刪除

int seqlistsize(psseqlist ps); //順序表元素的個數

int seqlistcapacity(psseqlist ps); //順序表的容量

int seqlistempty(psseqlist ps); //判空返回值為 0

void seqlistclear(psseqlist ps); //將順序表中元素清空 但是不改變順序表的容量

void seqlistdestory(psseqlist); //銷毀乙個順序表

void seqlistprint(psseqlist ps); //列印結果

#define  _crt_secure_no_warnings   1

#include

"seqlist.h"

//初始化鍊錶

void

seqlistinit

(psseqlist ps, int capacity)

ps->capacity = capacity;

ps->size = 0;

}//增容

void

checkcapacity

(psseqlist ps)

ps->capacity = (ps->capacity) * 2; //每次增容為原來的兩倍

}//尾插

void

seqlistpushback

(psseqlist ps, datatype data)

//尾刪

void

seqlistpopback

(psseqlist ps)

ps->size--;

}//任意位置插入

void

seqlistinsert

(psseqlist ps, int pos, datatype data)

++ps->size;

ps->array[pos] = data;

}//任意位置刪除

void

seqlisterase

(psseqlist ps, int pos)

int i = ps->size;

for (; i > pos; i--)

ps->size--;

}//順序表的元素個數

intseqlistsize

(psseqlist ps)

return ps->size;

}//順序表容量

intseqlistcapacity

(psseqlist ps)

//判空返回值為0

intseqlistempty

(psseqlist ps)

if (0 == ps->size)

return

0;return1;}

//將順序表中元素清空 但是不改變順序表的容量

void

seqlistclear

(psseqlist ps)

//銷毀順序表

void

seqlistdestory

(psseqlist ps)

//列印

void

seqlistprint

(psseqlist ps)

printf("\n");

}

#define  _crt_secure_no_warnings   1

#include#include//#include#include "seqlist.h"

void test()

int main()

資料結構 動態順序表

大家有沒有發現上次靜態順序表有一定的缺陷,它會浪費很多的空間,比如我們只有10個元素但我們申請元素申請100個,這樣我們會浪費90個空間,而動態順序表我們插入多少個我們就申請多少個,大大的節省了我們大的空間。首先我們來看看動態順序表的結構 typedef struct deqlist deqlist...

資料結構 動態順序表

在說順序表之前我們先來了解一下線性表,線性表就是n個型別相同的資料元素的有限序列.線性表在邏輯上是線性的結構,可以理解為一條直線,但是在物理上不一定是連續的,物理上通常是以陣列和鏈式結構形式儲存 比如 順序表是用一段實體地址連續的儲存單元依次儲存資料元素的線性結構,一般情況下採用陣列儲存。在陣列上完...

資料結構 順序表

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