顺序表及其基本应用
順序表及其基本應用
順序表的優點是可以更好的查找元素, 下面進行了初始化、增、刪、改、查、刪除等基本實現
- 結構體及其部分定義
- 順序表初始化
- 順序表查找
- 順序表的元素插入
- 順序表元素刪除
- 刪除順序表
- 小小demo驗證一下
源代碼
#include <stdio.h> #define ERROR 0 #define OK 1 #define Overflow 2 //表示上溢 #define Underflow 3 //表示下溢 #define NotPresent 4 //表示元素不存在 #define Duplicate 5 //表示有重復元素typedef int Status; //結構體 typedef struct seqList {int n; //長度int maxLength;int *element; //可以是自己想要的數據類型,這里我就用int了 }SeqList;//順序表初始化 Status Init(SeqList *L, int mSize) {L->maxLength = mSize;L->n = 0;L->element = (int *)malloc(sizeof(int)*mSize); //動態生成一維空間if (!L->element)return ERROR;return OK; }//順序表查找 Status Find(SeqList L, int i, int *x) {if (i < 0 || i >L.n - 1)return ERROR; //判斷是否越界*x = L.element[i]; //通過取出值,通過x傳遞回去return OK; }//順序表的元素插入 Status Insert(SeqList *L, int i, int x) {int j;if (i < -1 || i > L->n - 1)return ERROR;if (L->n == L->maxLength)return ERROR;for (j = L->n - 1; j > i; j--)L->element[j + 1] = L->element[j];L->element[i + 1] = x;L->n = L->n + 1;return OK; }//順序表元素刪除 Status Delete(SeqList *L, int i) {int j;if (i < 0 || i > L->n - 1)return ERROR;if (!L->n) //判斷是否為空return ERROR;for (j = i + 1; j < L->n; j++)L->element[j - 1] = L->element[j];L -> n--;return OK;} //輸出順序表 Status Output(SeqList *L) {int i;if (!L->n)return ERROR;for (i = 0; i < L->n; i++)printf("%d ", L->element[i]);printf("\n");return OK; }//刪除順序表 void Destory(SeqList *L) {L->n = 0;L->maxLength = 0;free(L->element); }int main() {int i;SeqList list;Init(&list, 10);for (i = 0; i < 10; i++)Insert(&list, i - 1, i);Output(&list);Delete(&list, 0);Output(&list);Destory(&list);return 0; }總結
- 上一篇: [BUUCTF-pwn]——wdb_20
- 下一篇: [BUUCTF-pwn]——xdctf2