Linux資料結構 靜態順序表(一)

2021-08-19 16:34:42 字數 1973 閱讀 2634

定義乙個結構體順序存放資料。

#define max_size  1000
typedef char seqlisttype;  

typedef struct seqlistlistseqlist;

列印順序表函式

void seqlistprint(seqlist* seqlist)//列印順序表中的陣列  

int i = 0;

int len = seqlist->size;

for (i = 0; i < len; i++)

printf("\n");

初始化

void seqlistinit(seqlist* seqlist)  

seqlist->size = 0;

}

順序表尾插

void seqlistpushback(seqlist* seqlist,seqlisttype value)  

if(seqlist->size >= max_size)

++seqlist->size;

seqlist->data[seqlist->size] = value;

return;

}

順序表尾刪

void seqlistpopback(seqlist* seqlist)  

if(seqlist->size == 0)

--seqlist->size;

}

頭插

void seqlistpushfront(seqlist* seqlist,seqlisttype value)  

if(seqlist->size >= max_size)

++seqlist->size;

size_t i = seqlist->size -1;

for(;i>0;i--)

seqlist->data[0] = value;

return;

}

頭刪

void seqlistpopfront(seqlist* seqlist)  

if(seqlist->size == 0)

size_t i = 0;

for(;isize - 1;++i)

--seqlist->size;

return;

}

給定乙個位置,插入value

void seqlistinsert(seqlist* seqlist,size_t pos,seqlisttype value)  

if(pos > seqlist->size)

if(seqlist->size >= max_size)

if(pos == 0 )

++seqlist->size;

size_t i = seqlist->size - 1;

for(;i - 1 >= pos;--i)

seqlist->data[pos] = value;

return;

}

給定乙個位置,刪除其對應資料

void seqlisterase(seqlist* seqlist,size_t pos)  

if(seqlist->size == 0)

if(pos >= seqlist->size)

size_t i = pos;

for(;isize - 1;++i)

--seqlist->size;

return;

}

資料結構靜態順序表

define max size 10 typedef int datatype struct seqlist 以上 就是建立乙個順序表,其中seqlist是整個順序表的空間而size是順序表中元素的個數。接下來我將用靜態順序表來實現尾插,頭插,任意插入資料,尾刪,頭刪等 標頭檔案 ifndef se...

資料結構 靜態順序表

本篇全部 都在linux系統下完成 用一段位址連續的單元依次儲存資料元素的線性結構,順序表又分為靜態順序表和動態順序表 首先建立乙個結構體seqlist,在結構體中我們定義了乙個陣列seqlist,用來存放資料,以及乙個無符號整形變數size,用來控制順序表有效資料的個數。即我們通過乙個簡單的陣列實...

資料結構靜態順序表

順序表 用一段位址連續儲存單元依次儲存資料元素的線性結構 pragma once 防止標頭檔案重複包含 define max size 10 include include include 實現基於靜態陣列的順序表的以下基本操作 首先先定義乙個結構體型別seqlist arr size 有效的元素個...