靜態順序表的基本操作

2021-07-25 11:03:44 字數 4451 閱讀 9246

靜態順序表的基本操作包括:

(1)初始化操作:void initseqlist(pseqlist seq);

(2)列印操作:void printf(pseqlist seq);

(3)尾插操作:void pushback(pseqlist seq, datatype data);

(4)尾刪操作:void pushback(pseqlist seq, datatype data);

(5)頭插操作:void pushfront(pseqlist seq, datatype data);

(6)頭刪操作:void popfront(pseqlist seq);

(7)插入任意位置操作:void insert(pseqlist seq, size_t pos, datatype data);

(8)查詢操作:int find(pseqlist seq, datatype data);

(9)刪除任意位置操作:void erase(pseqlist seq, size_t pos);

(10)刪除某個元素操作:void remove(pseqlist seq, datatype data);

(11)刪除相同元素操作:void removeall(pseqlist seq, datatype data);

演算法實現如下:

seqlist.h

#include #include #include #define max 10

typedef int datatype;

typedef unsigned int size_t;

typedef struct seqlist

seqlist, *pseqlist;

void initseqlist(pseqlist seq);

void printf(pseqlist seq);

void pushback(pseqlist seq, datatype data);

void popback(pseqlist seq);

void pushfront(pseqlist seq, datatype data);

void popfront(pseqlist seq);

void insert(pseqlist seq, size_t pos, datatype data);

int find(pseqlist seq, datatype data);

void erase(pseqlist seq, size_t pos);

void remove(pseqlist seq, datatype data);

void removeall(pseqlist seq, datatype data);

seqlist.c

#include "seqlist.h"

void initseqlist(pseqlist seq) //初始化操作

void printf(pseqlist seq) //列印操作

printf("\n");

}

void pushback(pseqlist seq, datatype data)   //尾

插操作 seq->array[seq->size] = data;

seq->size++;

}void popback(pseqlist seq) //尾

刪操作 seq->size--;

}

void pushfront(pseqlist seq, datatype data)    //頭

插操作 for(idx=seq->size; idx>0; --idx)

seq->array[0] = data;

seq->size++;

}

void popfront(pseqlist seq)      //頭

刪操作 for(idx=0; idxsize; ++idx)

seq->size--;

}

void insert(pseqlist seq, size_t pos, datatype data)   //插入任意位置操作

for(idx=pos; idxsize; --idx)

seq->array[pos] = data;

seq->size++;

}

int find(pseqlist seq, datatype data)     //查詢操作

} return -1;

}

void erase(pseqlist seq, size_t pos)    //刪除任意位置操作

for(idx=pos; idxsize-1; ++idx)

seq->size--;

}

void remove(pseqlist seq, datatype data)     //刪除某個元素操作

erase(seq, ret);

}

void removeall(pseqlist seq, datatype data)  //刪除相同元素操作

else

}seq->size -= count;

}

test . c

#include "seqlist.h"

void test1()

; initseqlist(&seq);

pushback(&seq,1);

pushback(&seq,2);

pushback(&seq,3);

pushback(&seq,4);

pushback(&seq,5);

pushback(&seq,6);

printf(&seq);

popback(&seq);

popback(&seq);

popback(&seq);

popback(&seq);

printf(&seq);

}void test2()

; initseqlist(&seq);

pushfront(&seq,1);

pushfront(&seq,2);

pushfront(&seq,3);

pushfront(&seq,4);

pushfront(&seq,5);

pushfront(&seq,6);

printf(&seq);

popfront(&seq);

popfront(&seq);

popfront(&seq);

popfront(&seq);

printf(&seq);

}void test3()

; initseqlist(&seq);

insert(&seq, 0 ,5);

insert(&seq, 1 ,4);

insert(&seq, 2 ,3);

insert(&seq, 3 ,2);

insert(&seq, 4 ,1);

printf(&seq);

erase(&seq, 0);

erase(&seq, 0);

erase(&seq, 0);

printf(&seq);

}void test4()

; initseqlist(&seq);

insert(&seq, 0 ,5);

insert(&seq, 1 ,4);

insert(&seq, 2 ,3);

insert(&seq, 3 ,2);

insert(&seq, 4 ,1);

printf(&seq);

remove(&seq, 4);

remove(&seq, 1);

remove(&seq, 2);

printf(&seq);

}void test5()

; initseqlist(&seq);

insert(&seq, 0 ,0);

insert(&seq, 1 ,1);

insert(&seq, 2 ,2);

insert(&seq, 3, 0);

insert(&seq, 4, 3);

insert(&seq, 5, 0);

insert(&seq, 6, 4);

insert(&seq ,7, 0);

insert(&seq, 8, 5);

printf(&seq);

removeall(&seq, 0);

printf(&seq);

}int main()

靜態順序表順序表的基本操作

一般採用陣列表示順序表,陣列有靜態陣列和動態陣列之分,在此我們採用靜態陣列表示靜態順序表,如圖為線性表的結構 下面實現順序表的基本操作 初始化 銷毀 尾插 頭插 尾刪 頭刪 根據指定元素刪除 指定位置插入和刪除 查詢 靜態順序表的結構定義 define maxsize 100 typedef int...

靜態順序表操作

靜態順序表操作 include define maxsize 10 定義 typedef structsqlist void init sqlist 初始化 void insert sqlist int int 插入操作 int deletenum sqlist int int 刪除操作 int s...

順序表的基本操作 順序表基本操作上機實驗

理解線性結構的基本概念,掌握兩種基本的儲存結構 順序儲存結構 順序表 和鏈式儲存結構 單鏈表 用c語言實現在兩種儲存結構上的對應操作 包括建立 刪除插入元素 遍歷等 鞏固強化c程式設計的基本方法和能力。完成順序表的建立 元素刪除 遍歷等操作,具體內容如下 有序的一組整數 1,2,3,4,6 設計順序...