C語言實現有序表

2021-10-04 22:16:07 字數 1851 閱讀 2540

#include#include#define list_init_size 80

#define listincreament 10

#define error 0 //錯誤的時候的定義

#define ok 1 //正確的定義

#define overrlow -2

typedef struct sllist sqlist;

/*初始化鍊錶

*/int initlist(sqlist *l)

//輸入元素

int inputlist(sqlist *l,int n)

printf("請輸入元素:\n");

for (int i = 0; i < n; i++)

return ok;}/*

輸出函式

*/void output(sqlist *l)

printf("輸出元素為:");

for (int i = 0; i < l->length; i++)

}void output1(sqlist &l)

printf("輸出元素為:");

for (int i = 0; i < l.length; i++) }/*

插入元素

i 插入的位置

e 插入到元素

*/int insertlist(sqlist *l,int i,int e)

//判斷當前儲存位置是否已滿

if (l->length >= l->listsize)

/* //採用普通方式移動資料

for (int j = l->length - 1; j >= i-1; j--)

l->elem[i - 1] = e;

l->length++;*/

insert_e = &l->elem[i - 1];

//採用指標移動資料

for (int *p = &l->elem[l->length - 1]; p >= insert_e; p--)

*insert_e = e;

l->length++;

return 0;}/*

刪除元素

i 要刪除的元素的下標

*/int deletelist(sqlist *l,int i)

deletei = &l->elem[i - 1];

for (int *p = deletei + 1; p <= &l->elem[l->length - 1]; p++)

*(p - 1) = *p;

l->length--;

return ok;}/*

修改某個元素

i 要修改的元素的下標

e 重新輸入的值

*/void updatelist(sqlist *l, int i,int e)

l->elem[i - 1] = e;}/*

查詢某個值

i 要查詢的下標

*/int selectlist(sqlist *l, int i)

return l->elem[i - 1];}/*

使用氣泡排序對鍊錶排序(asc、desc)

外面每迴圈一次,裡面就少比較一次

*/bool bubllersort(sqlist *l)

for (int i = 0; i < l->length - 1; i++)

} }return ok;}/*

查詢最大值和最小值

*/void main()

//for (int i = 0; i < 5; i++)

//printf("\n%d", num1);

}

C語言實現順序表

標頭檔案部分 include include include typedef int datatype define maxsize 10 typedef struct seqlist seqlist 列印順序表的內容 void printseqlist seqlist seq 初始化順序表 voi...

C語言實現順序表

順序表是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。線性表採用順序儲存的方式儲存就稱之為順序表。順序表是將表中的結點依次存放在計算機記憶體中一組位址連續的儲存單元中。這裡我用c語言實現了一下順序表的具體操作。其中用了一些c 的小語法。所以有可能不...

C語言實現順序表

使用c語言實現順序表 順序表的主要功能有 1 初始化順序表 2 順序表的頭插 3 順序表的尾插 4 順序表的頭刪 5 順序表的尾刪 6 順序表的任意點插入 7 順序表的查詢刪除 8 順序表的排序 9 清空順序表 10 列印順序表 具體 實現如下 seqlist.h include include i...