数据结构:顺序表的实现(C语言实现)
来源:互联网 发布:淘宝品牌授权 编辑:程序博客网 时间:2024/03/29 00:16
顺序表的实现
(1) 初始化顺序表
(2) 建立顺序表
(3) 销毁顺序表 //顺序表静态分配内存,在顺序表退出作用域时自动释放该变量所占内存单元,无需销毁
(4) 判空操作
(5) 求顺序表的长度
(6) 遍历操作
(7) 按值查找
(8) 按位查找
(9) 插入操作
(10) 删除操作
所需要实现的十大功能
#include<stdio.h>#define MaxSize 100typedef int typeDate; //定义线性表的数据类型,假设为int型 struct SeqList{ typeDate date[MaxSize]; int length;};void IniList(SeqList *L) {//初始化顺序表 L -> length = 0;}int SetList(SeqList *L, typeDate a[], int n) {//建立顺序表 if(n > MaxSize) { printf("顺序表空间不足,无法建立\n"); return 0; } for(int i = 0; i < n; i++) L -> date[i] = a[i]; L -> length = n; return 1;} void Empty(SeqList *L) {//判空操作 if (L -> length == 0) printf("顺序表为空\n"); else printf("顺序表不为空\n");}int length(SeqList *L) {//求顺序表长度 return L -> length;} void PrintList(SeqList *L) {//遍历顺序表 for(int i = 0; i < L -> length; i++) printf("%d ", L -> date[i]); printf("\n");}int Locate(SeqList *L, typeDate x) {//按值查找 for(int i = 0; i < L -> length; i++) if(L -> date[i] == x) { printf("该值位于第%d位\n", i); return 1; } printf("顺序表中没有该值, 查找失败\n"); return 0;}int Get(SeqList *L, typeDate n) {//按位查找 if(n < 0 || n > L -> length) { printf("查找位置非法,查找失败\n"); return 0; } return L -> date[n];}int Insert(SeqList *L, int j, typeDate x) {// 插入操作 if(L -> length >= MaxSize) { printf("上溢错误,插入失败\n"); return 0; } if(j < 0 || j > L -> length) { printf("位置错误,插入失败\n"); return 0; } for(int i = L -> length; i >= j; i--) L -> date[i] = L -> date[i-1]; L -> date[j] = x; L -> length++; return 1;} int Delete(SeqList *L, int j) { if(L -> length <= 0) { printf("下溢错误,删除失败\n"); return 0; } if(j < 0 || j > L -> length) { printf("超出顺序表范围, 删除失败\n"); return 0; } for(int i = j; i < L -> length; i++) L -> date[i] = L -> date[i+1]; L -> length--; return 1;}int main() { int n; int Test[5] = {1, 2, 3, 4, 5}; SeqList L; SetList(&L, Test, 5); Insert(&L, 0, 6);//在第0位插一个6 Insert(&L, 6, 7);//在第6位插一个7 Insert(&L, 3, 10); Locate(&L, 6);//查找6这个数的位置 printf("该位置的数字是:%d\n", Get(&L, 3)); PrintList(&L); for(int i = 0; i < 5; i++) { printf("请输入你想删除的元素下标: "); scanf("%d", &n); printf("\n"); Delete(&L, n); PrintList(&L); }}
参考书籍: <<数据结构-从概念到C实现>>
阅读全文
0 0
- 数据结构:顺序表的实现(C语言实现)
- [c语言]数据结构 顺序表的实现
- 【数据结构】实现顺序表(c语言)
- 数据结构 顺序表的实现(C语言)
- <数据结构>顺序列表的C语言实现
- <数据结构>顺序栈的C语言实现
- C语言实现数据结构中的顺序表
- c语言实现数据结构顺序表源代码
- 数据结构C语言实现之顺序表
- 数据结构--顺序表c语言实现
- 【数据结构】C语言实现顺序表
- 【数据结构】C语言实现顺序链表
- 数据结构-队列-顺序表实现-C语言
- C语言实现顺序表-数据结构
- 数据结构--顺序栈实现(c语言)
- 数据结构之---c语言实现线性表的顺序表
- C语言数据结构之:顺序表的实现
- c语言实现数据结构中顺序表的源代码
- iOS中tabBar按钮再次点击实现界面刷新
- LeetCode链表(不断更新)
- 小明求素数积
- TypeError: 'module' object is not callable
- window.opener.document.getElementById
- 数据结构:顺序表的实现(C语言实现)
- Focal Loss 反向求导及darknet上的实现
- String变量创建过程
- Android 反编译 + 修改内容+发布
- 二叉树
- JUC系列之CyclicBarrier/CountDownLatch/Semaphore
- 3章 Matrices and Vector
- zookeeper怎么用ssh脚本启动
- SecureCRT的使用过程中遇到的问题