线性表的顺序存储
来源:互联网 发布:安装mysql第一部未响应 编辑:程序博客网 时间:2024/04/30 04:30
用结构体实现 结构体数据成员为数组 和 一个整型的length 指最后一项的位置
#define Maxlength 100struct sequencelist{ int data[Maxlength]; int length;};
- 删除
void delete1(struct sequencelist *list, int index){ //刚构造时data[length] 是没有意义的一个数 int length = list->length; if(length == 0 || index < 1 || index > length)//插入的位置只能是[1,length]; return; for(int i = index-1; i < length-1; i++) list->data[i] = list->data[i+1];//第一项从data[index-1] 被data[index] 覆盖直到最后data[length-2] 被data[length-1]覆盖 list->length--;}
特殊情况如果index等于length 则data[index-1] 这就是删除的最后一个数据被 data[index] 一个无意义的值覆盖 最后list->length– 则这个数没有被输出来
- 插入
//插入的意思 应该是取代位置 原来序列是 1, 3, 5, 7, 把4插入在第一个位置 则结果应该是 4, 1, 3, 5, 7 int insert(struct sequencelist *list, int index, int element)//插入的位置是index 在数组中应该是data[index-1] index 等于1{ int length = list->length; if(length == 0 || index < 1 || index > length+1 || length > Maxlength)//length 是线性表的长度 刚开始data有意义范围[1,length-1] return 0;//特殊情况length 那个位置让它可以插入 直接在后面添加 for(int i = length-1; i >= index-1; i--) { list->data[i+1] = list->data[i];//从data[length-1] 退到data[length] 到data[index-1] 退到data[index] data[index-1] 就可以插入值 } list->data[index-1] = element; list->length++; return 0;}
0 0
- 线性表的顺序存储
- 顺序存储的线性表
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 百练+数独+DFS回溯
- 为什么要使用AsyncTask?
- openstack on centos 7.1(networking)
- win7不想更新win10也会下载win10安装包,而且有时会自动更新
- 2016年JAVA程序员一定需要知道的优秀第三方库
- 线性表的顺序存储
- 坐标系和映射模式
- HTTP学习笔记——报文格式
- 编程语言基本知识
- cookie 和session 的区别:
- linux常用命令
- IOS 点击空白处隐藏键盘的几种方法
- MySQL 5.7新特性介绍
- java.toString() ,(String),String.valueOf的区别