順序表的動態儲存

2021-09-26 22:59:22 字數 2424 閱讀 3043

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

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

// 順序表的靜態儲存

#define n 100

typedef int sldatatype;

typedef struct seqlist

seqlist;

// 順序表的動態儲存

typedef struct seqlist

seqlist;

這裡來看一下動態儲存

seq.h

#include

#include

#include

#define sldatatype int

typedef struct seqlist

seqlist;

void seqlistinit(seqlist *psl, size_t capicity);//初始化順序表

void seqlistdestory(seqlist *psl);//清空順序表

void checkcapicity(seqlist *psl);//檢查順序表

void seqlistpushbback(seqlist *psl, sldatatype x);//尾插

void seqlistpopback(seqlist *psl);//尾刪

void seqlistpushfront(seqlist *psl, sldatatype x);//頭插

void seqlistpopfront(seqlist *psl);//頭刪

void seqlistprint(seqlist *psl);//列印順序表

int seqlistfind(seqlist *psl,sldatatype x);//查詢順序表中元素

void seqlistinsert(seqlist *psl, sldatatype x, size_t pos);//任意位置插入元素

void seqlisterase(seqlist *psl, size_t pos);//刪除乙個位置的元素

void seqlistremove(seqlist *psl, sldatatype x);//刪除所有x元素

void seqlistmodify(seqlist *psl, size_t pos, sldatatype x);//修改某個位置的元素

seq.c

#include"seq.h"

void seqlistinit(seqlist *psl, size_t capicity)

void seqlistdestory(seqlist *psl)

void checkcapicity(seqlist *psl)

if (psl->_capicity == 0)//如果容量為0 }

void seqlistpushbback(seqlist *psl, sldatatype x)

void seqlistpopback(seqlist *psl)

void seqlistpushfront(seqlist *psl,sldatatype x)

psl->arry[0] = x;//挪動完把插入的元素放在首位,即插入成功

psl->_size++;

}void seqlistpopfront(seqlist *psl)

psl->_size--;

}void seqlistprint(seqlist *psl)

}int seqlistfind(seqlist *psl, sldatatype x)

} return -1;

}void seqlistinsert(seqlist *psl, sldatatype x, size_t pos)

psl->arry[pos - 1] = x;

psl->_size++;

}void seqlisterase(seqlist *psl, size_t pos)

psl->_size--;

}void seqlistremove(seqlist *psl, sldatatype x)

right++;

} psl->_size = left;

}void seqlistmodify(seqlist *psl, size_t pos, sldatatype x)

psl->arry[pos - 1] = x;

}

test.c

#include"seq.h"

int main()

模擬順序表的動態儲存

標頭檔案 pragma once include include include include typedef int sldatetype 資料 typedef struct seqlist seqlist 對資料的管理 增刪查改 void seqlistinit seqlist ps 初始化 ...

DS線性表的順序儲存 順序表 靜態陣列 動態分配

線性表的基本操作 initlist l 初始化表,構造1個空的線性表 listinsert l,i,e 插入操作,在表l的第i個位置插入指定元素e listdelete l,i,e 刪除操作,刪除表中第i個位置的元素,並用e返回刪除元素的值 getelem l,i 按位查詢操作,獲取表中第i個位置上...

動態順序表

ifndef seqlist h define seqlist h define capacity 3 typedef struct seqlist typedef enum tag typedef struct findret void expendseqlist seqlist pseq 擴大容...