目录
- 一、思维导图
- 二、步骤
- 1.初始化
- 2.求表长
- 3.插入数据元素
- 4.删除数据元素
- 5.取出数据元素
- 按位查找
- 按位查找
- 所有代码
- 总结
一、思维导图
二、步骤
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 (i<0 || 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 (i<0 || 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 (i<0 || 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; }
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注<计算机技术网(www.ctvol.com)!!>的更多内容!
需要了解更多c/c++开发分享详解C语言之顺序表,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/948724.html