C语言顺序表的实现步骤及代码是什么?
导读:这篇文章给大家分享的是C语言顺序表的实现,本文会有详细的思路及步骤介绍,文中示例代码也介绍的很详细,对大家学习和理解C语言的顺序表的实现有一定的参考价值,那么接下来感兴趣的朋友就跟随小编一起学习一下吧。 一、思维导图 二、步骤...
这篇文章给大家分享的是C语言顺序表的实现,本文会有详细的思路及步骤介绍,文中示例代码也介绍的很详细,对大家学习和理解C语言的顺序表的实现有一定的参考价值,那么接下来感兴趣的朋友就跟随小编一起学习一下吧。
一、思维导图
二、步骤
1.初始化
代码如下:
void ListInit(SeqList *L) { L-> size = 0; }
2.求表长
代码如下:
int ListLength(SeqList L) { return L.size; }
3.插入数据元素
代码如下:
int ListInsert(SeqList *L, int i, DataType x) { int j; if (L-> size > = MaxSize) { printf("顺序表已满,插入失败!!!\n"); return 0; } else if (i0 || i> L-> size) { printf("参数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.删除数据元素
代码如下:
int ListInsert(SeqList *L, int i, DataType x) { int j; if (L-> size > = MaxSize) { printf("顺序表已满,插入失败!!!\n"); return 0; } else if (i0 || i> L-> size) { printf("参数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.取出数据元素
按位查找
代码如下:
int ListGet(SeqList L, int i, DataType *x) { if (L.size = 0) { printf("顺序表已空,取出元素失败!!!\n"); return 0; } else if (i 0 || i > = L.size) { printf("参数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 //数组能存储的最大最大元素个数 typedef int DataType; //存储数据元素的数据类型 typedef struct { DataType list[MaxSize]; int size; //当前存储的数据元素个数 } SeqList; //初始化 void ListInit(SeqList *L) { L-> size = 0; } //求表长 int ListLength(SeqList L) { return L.size; } //插入数据元素 int ListInsert(SeqList *L, int i, DataType x) { int j; if (L-> size > = MaxSize) { printf("顺序表已满,插入失败!!!\n"); return 0; } else if (i0 || i> L-> size) { printf("参数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; } } //删除数据元素 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("参数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; } } //取出数据元素 //按位查找 void ListGet(SeqList L, int i, DataType *x) { if (L.size = 0) { printf("顺序表已空,取出元素失败!!!\n"); return 0; } else if (i 0 || i > = L.size) { printf("参数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; }
总结
关于C顺序表的实现就介绍到这,上述示例具有一定的借鉴价值,感兴趣的朋友可以参考,希望能对大家有帮助,想要了解更多C语言的内容,大家可以关注其它的相关文章。
文本转载自PHP中文网
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: C语言顺序表的实现步骤及代码是什么?
本文地址: https://pptw.com/jishu/655320.html