詳解C語言之順序表
更新時間:2021年11月17日 15:31:44 作者:ぃ咔哇依°ヽ
這篇文章主要為大家介紹了C語言的順序表,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
一、思維導圖
二、步驟
1.初始化
代碼如下:
void ListInit(SeqList *L) { L->size = 0; }
2.求表長
代碼如下:
int ListLength(SeqList L) { return L.size; }
3.插入數(shù)據(jù)元素
代碼如下:
int ListInsert(SeqList *L, int i, DataType x) { int j; if (L->size >= MaxSize) { printf("順序表已滿,插入失敗?。?!\n"); return 0; } else if (i<0 || i>L->size) { printf("參數(shù)i不合法,插入失?。。?!\n"); return 0; } else { for (j = L->size; j > i; j--) L->list[j] = L->list[j - 1]; L->list[i] = x; L->size++; return 1; } }
4.刪除數(shù)據(jù)元素
代碼如下:
int ListInsert(SeqList *L, int i, DataType x) { int j; if (L->size >= MaxSize) { printf("順序表已滿,插入失?。。。n"); return 0; } else if (i<0 || i>L->size) { printf("參數(shù)i不合法,插入失?。。?!\n"); return 0; } else { for (j = L->size; j > i; j--) L->list[j] = L->list[j - 1]; L->list[i] = x; L->size++; return 1; } }
5.取出數(shù)據(jù)元素
按位查找
代碼如下:
int ListGet(SeqList L, int i, DataType *x) { if (L.size <= 0) { printf("順序表已空,取出元素失?。。。n"); return 0; } else if (i < 0 || i >= L.size) { printf("參數(shù)i不合法,取出元素失?。。?!\n"); return 0; } else { *x = L.list[i]; return 1; } }
按位查找
代碼如下:
int ListGetZ(SeqList L, DataType x, int *i) { int j; for (j = 0; j < ListLength(L); j++) { if (L.list[j] == x) { *i = j; return 1; } } return 0; }
所有代碼
#include <stdio.h> #define MaxSize 1024 //數(shù)組能存儲的最大最大元素個數(shù) typedef int DataType; //存儲數(shù)據(jù)元素的數(shù)據(jù)類型 typedef struct { DataType list[MaxSize]; int size; //當前存儲的數(shù)據(jù)元素個數(shù) }SeqList; //初始化 void ListInit(SeqList *L) { L->size = 0; } //求表長 int ListLength(SeqList L) { return L.size; } //插入數(shù)據(jù)元素 int ListInsert(SeqList *L, int i, DataType x) { int j; if (L->size >= MaxSize) { printf("順序表已滿,插入失?。。?!\n"); return 0; } else if (i<0 || i>L->size) { printf("參數(shù)i不合法,插入失敗?。。n"); return 0; } else { for (j = L->size; j > i; j--) L->list[j] = L->list[j - 1]; L->list[i] = x; L->size++; return 1; } } //刪除數(shù)據(jù)元素 int ListDelete(SeqList *L, int i, DataType *x) { int j; if (L->size <= 0) { printf("順序表已空,刪除失?。。?!\n"); return 0; } else if (i < 0 || i >= L->size) { printf("參數(shù)i不合法,刪除失敗!?。n"); return 0; } else { *x = L->list[i]; for (j = i; j < L->size - 1; j++) L->list[j] = L->list[j + 1]; L->size--; return 1; } } //取出數(shù)據(jù)元素 //按位查找 void ListGet(SeqList L, int i, DataType *x) { if (L.size <= 0) { printf("順序表已空,取出元素失?。。?!\n"); return 0; } else if (i < 0 || i >= L.size) { printf("參數(shù)i不合法,取出元素失?。。?!\n"); return 0; } else { *x = L.list[i]; return 1; } } //安值查找 int ListGetZ(SeqList L, DataType x, int *i) { int j; for (j = 0; j < ListLength(L); j++) { if (L.list[j] == x) { *i = j; return 1; } } return 0; } int main() { SeqList L; int i, x; ListInit(&L); for (i = 0; i < 10; i++) ListInsert(&L, i, i + 10); ListDelete(&L, 4, &x); for (i = 0; i < ListLength(L); i++) { ListGet(L, i, &x); printf("%d ", x); } system("pause"); return 0; }
總結
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!
相關文章
Qt中PaintEvent繪制實時波形圖的實現(xiàn)示例
本文主要介紹了Qt中PaintEvent繪制實時波形圖的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-06-06VS未找到框架“.NETFramework,Version=v4.6.1”引用程序集的解決辦法
本文主要介紹了VS未找到框架“.NETFramework,Version=v4.6.1”引用程序集的解決辦法,具有一定的參考價值,感興趣的可以了解一下2023-10-10