順序表(靜態)

2021-08-20 06:44:04 字數 3007 閱讀 2320

實現乙個順序表的增刪查詢、排序(冒泡、快速排序)功能

程式設計思想:

tdd,模組化實現

#pragma once  //防止標頭檔案的多次引用

#include

#include

#include

#include

#define n 10

typedef

int datatype;

typedef

struct seqlist

seqlist,* pseqlist;

void test();

void seqlistinit(pseqlist s);//初始化

void seqlistpushfront(pseqlist s, datatype x);//頭插

void seqlistpushback(pseqlist s, datatype x);//尾插

void seqlistpopfront(pseqlist s);//頭刪

void seqlistpopback(pseqlist s);//尾刪

void seqlistinsert(pseqlist s,size_t pos, datatype x);//任意位置插

void seqlistearse(pseqlist s,size_t pos);//任意位置刪

int seqlistfind(pseqlist s, datatype x);//查詢

void seqlistmodify(pseqlist s, size_t pos,datatype x);//修改

int seqlistempty(pseqlist s);// 判斷是否為空,1 表示空, 0 表示不空

int seqlistsize(pseqlist s);// 返回數量

void seqlistclear(pseqlist s);// 清空

void seqlistremove(pseqlist s, datatype x);//刪除第乙個x

void seqlistremoveall(pseqlist s, datatype x);//刪除所有x

void seqlistbubblesort(pseqlist s);//氣泡排序

void seqlistselectsort(pseqlist s);//選擇排序

int seqlistbinarary(pseqlist s, datatype x);//二分查詢

void seqlisprint(pseqlist s);// 列印

#include "seqlist.h"

void seqlistinit(pseqlist s)//初始化

void seqlistpushfront(pseqlist s, datatype x)//頭插

void seqlistpushback(pseqlist s, datatype x)//尾插

void seqlistpopfront(pseqlist s)//頭刪

else

s->size--;

}}void seqlistpopback(pseqlist s)//尾刪

else

s->size--;

}void seqlistinsert(pseqlist s, size_t pos, datatype x)//任意位置插

else

s->arr[pos] = x;

s->size++;

}}void seqlistearse(pseqlist s, size_t pos)//任意位置刪

while (end

< s->size-1)

s->size--;

}int seqlistfind(pseqlist s,datatype x)//查詢

return -1;

}int seqlistempty(pseqlist s)// 判斷是否為空,1 表示空, 0 表示不空

void seqlistmodify(pseqlist s, size_t pos,datatype x)//修改

int seqlistsize(pseqlist s)// 返回數量

void seqlistclear(pseqlist s)// 清空

void seqlistremove(pseqlist s, datatype x)//刪除第乙個x

void seqlistremoveall(pseqlist s, datatype x)//刪除所有x

else

count++;

index++;

}s->size -= count;

}void swap(datatype *left, datatype *right)

void seqlistbubblesort(pseqlist s)//氣泡排序

if (exchange = 0)

break;

end--;

}}void seqlistselectsort(pseqlist s)//選擇排序

swap(&s->arr[left], &s->arr[min]);

if (max == left)

max = min;

swap(&s->arr[right], &s->arr[max]);

left++;

right--;

}}int seqlistbinarary(pseqlist s,datatype x)//二分查詢

return -1;

}void seqlistprint(pseqlist s)// 列印

printf("\n");

}

void test()//呼叫

#define _crt_secure_no_warnings 1

#include "seqlist.h"

int main()

靜態順序表

在書上看到的,學習學習。題目 建立乙個靜態的順序表存放整數,大小為10,完成以下操作。1 輸入6個整數,列印出順序表中的內容,並顯示表中的剩餘的空間個數。2 在順序表中的第3個位置插入元素0,列印出順序表中的內容,並顯示表中剩餘的空間個數。3 再試圖插入表中第11個位置整數0,程式提示超出範圍。4 ...

靜態順序表

最近在學習資料結構的單鏈表部分,於是寫了乙個靜態順序表做練習。實現了對其初始化 新增 更改 刪除等功能的實現。seqlist.h pragma once define seq list ifdef seq list include include include define maxsize 100...

靜態順序表

順序表是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。線性表採用順序儲存的方式儲存就稱之為順序表。順序表是將表中的結點依次存放在計算機記憶體中一組位址連續的儲存單元中。include stdio.h include stdlib.h elemtyp...