靜態順序表的實現建立 查詢 刪除

2021-07-11 22:53:18 字數 3197 閱讀 1667

順序表概述:用順序儲存方法儲存的線性表

實現的功能:1、建立順序表並初始化

2、在順序表尾部插入元素

3、刪除尾部元素

4、從前往後輸出

5、在順序表頭插入元素

6、在任意位置插入元素

7、刪除順序表任意位置元素

8、刪除給定資料為元素

9、刪除所有為給定數的元素

10、排序(冒泡、選擇排序)

////

****靜態版順序表****/

seqlist.h

#ifndef  seqlist_h

#define seqlist_h

#define max_num 5

#include#include#includetypedef int datatype;

typedef unsigned int size_t;

typedef struct seqlist

seqlist,*pseqlist;

void initseqlist(pseqlist pseqlist);//初始化

void pushback(pseqlist pseqlist, datatype data);//尾插

void popback(pseqlist pseqlist); //刪除尾元素

void printseqlist(seqlist seqlist);//從前往後輸出

void pushfront(pseqlist pseqlist, datatype data);//頭插

void popfront(pseqlist pseqlist);//頭刪

void insert(pseqlist pseqlist, int pos, datatype data);//任意位置插入

int find(pseqlist pseqlist, datatype data);//查詢元素

//刪除順序表pos位置元素

void erase(pseqlist pseqlist, int pos);

//移除data資料

void remove(pseqlist pseqlist,datatype data);

void removeall(pseqlist pseqlist,datatype data );//去除所有的data元素

void bubblesort(pseqlist pseqlist); //氣泡排序

void selectsort(pseqlist pseqlist);//選擇排序

#endif

seqlist.c

#include"seqlist.h"

//初始化

void initseqlist(pseqlist pseqlist)

void printseqlist(seqlist seqlist)//從前往後輸出

printf("\n");

}void pushback(pseqlist pseqlist, datatype data)//尾插

pseqlist->arr[pseqlist->sz] = data;

pseqlist->sz++;

}void popback(pseqlist pseqlist)//刪除尾元素

pseqlist->sz--;

}void pushfront(pseqlist pseqlist, datatype data)//從開頭插入乙個數

for (iidx = (pseqlist->sz) - 1; iidx >= 0; iidx--)

pseqlist->arr[0] = data;

pseqlist->sz++;

}void popfront(pseqlist pseqlist)//刪除頭元素

for (iidx = 0; iidx < pseqlist->sz-1; iidx++)//注意這裡的sz-1防止越界

pseqlist->sz--;

}void insert(pseqlist pseqlist, int pos, datatype data)//任意位置插入

pseqlist->arr[pos] = data;

pseqlist->sz++; }}

int find(pseqlist pseqlist, datatype data)

} return -1;

}//刪除順序表pos位置元素

void erase(pseqlist pseqlist, int pos)

pseqlist->sz--;

} }//移除data資料

void remove(pseqlist pseqlist, datatype data)

void removeall(pseqlist pseqlist, datatype data)

for (; iidx < pseqlist->sz; iidx++)

else

} pseqlist->sz -= icount;

}void bubblesort(pseqlist pseqlist) //氣泡排序

for (iidx = 0; iidx < pseqlist->sz - 1; iidx++)

}if (flag != 1)

}return;

}void selectsort(pseqlist pseqlist)//選擇排序

} //每次找到比arr[min]還小的數就交換!

if (min != iidx)}}

>>>>>為方便各位和我一樣正」在路上「學習的同學,我也把測試函式也放在下面,方便大家檢驗本人的程式,同時測試函式裡面的諸多**都是重複性的,所以就留下來,免得大家做一些重複性的工作<<<<<

test.c

#include "seqlist.h"

void test1()

void test2()

void test3()

void test4()

void test5()

test6()

int main()

這裡對於順序表的總長度是直接給定的,這樣就存在一些限制。後面我會對其改進,實現動態的順序表!

順序表的建立 查詢 插入 刪除

順序表 順序表是線性表的順序儲存結構 順序表就是將線性表中的資料元素按照線性順序儲存到指定位置開始的 一塊連續的儲存空間中。順序表c include using namespace std define maxsize 50 線性表不會超過50個元素 typedef int elemtype typ...

靜態順序表的實現

define crt secure no warnings include include include define max 10 typedef int datatype typedef struct seqlist seqlist,pseqlist void initseqlist pseq...

靜態順序表的實現

靜態順序表 實現 標頭檔案 seqlist.h pragma once define max size 10000 typedef unsigned int size t typedef int datatype 順序表元素型別 typedef struct seqlist seqlist,pseq...