C語言實現動態順序表

2021-07-31 06:26:42 字數 2522 閱讀 8408

#include

#include

#include

#include

#ifndef _list_h__

#define _list_h__

#define default 3//初始化開闢容量大小

#define int_sz 2//每次固定增容大小

typedef int datatype;

typedef struct seqlist

seqlist, *plist;

void initseqlist(plist p);//初始化

void pushback(plist p, datatype data);//尾插

void pushfront(plist p, datatype data);//頭插

void popback(plist p);//尾刪

void popfront(plist p);//頭刪

void remove(plist p, datatype data);//刪除指定元素

void removeall(plist p, datatype data);//刪除指定所有元素

void bubblesort(plist p);//排序

int search(plist p, datatype data);//查詢

void show(plist p);//全部顯示

int binarysearch(plist p, datatype d);//二分查詢

void destory(plist p);//銷毀順序表

#endif // list_h__

#define _crt_secure_no_warnings 1

#include"list.h"

void menu()

int main()

else

}break;

case

6: printf("請輸入要刪除的元素:");

scanf("%d", &data);

remove(&mylist, data);

break;

case

7: printf("請輸入要刪除的元素:");

scanf("%d", &data);

removeall(&mylist, data);

break;

case

8: bubblesort(&mylist);

break;

case

9: show(&mylist);

break;

case

10: printf("請輸入要查詢的元素:");

scanf("%d", &data);

binarysearch(&mylist, data);

case

0: destory(&mylist);

defult:

break;

}} while (input);

system("pause");

return

0;}

#define _crt_secure_no_warnings 1

#include"list.h"

void initseqlist(plist p)//初始化順序表

else

}datatype* checkcapacity(plist p)

else

}

}void pushback(plist p, datatype data)//尾插

void popback(plist p)//尾刪

else

}void pushfront(plist p, datatype data)//頭插

p->pdata[0] = data;

p->count++;

}void popfront(plist p)//頭刪

else

p->count--;

}}void show(plist p)//顯示

}int search(plist p, datatype d)//查詢

else

}}void remove(plist p, datatype d)//刪除指定元素

p->count--;

}else

}void removeall(plist p, datatype d)//刪除指定所有元素

p->count--;

}}void bubblesort(plist p)//排序}}

}int binarysearch(plist p, datatype d)

else

if (p->pdata[mid] < d)

else

}}void destory(plist p)

動態順序表c語言實現

主要操作結構體中的指標,在init函式裡對指標進行記憶體開闢,checkcapacity函式在每次插入之前檢查一遍,如果可用空間沒有了,就開闢當前最大容量的兩倍。其他操作與靜態順序表無大區別。seqlist.h pragma once define datatype int typedef stru...

C語言實現動態順序表

關鍵知識點 動態順序表的儲存是以動態陣列的方式,它比之靜態順序表,在空間的開闢上,更加的靈活。避免了靜態順序表的定長陣列儲存方式而導致空間開闢小了不夠用,開闢大了造成記憶體浪費的特點。根據實際需要,自己掌控對記憶體空間大小的分配。因而動態順序表在實際應用中更加廣泛。對順序表的主要操作 初始化順序表 ...

C語言實現順序表

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