第三周项目一(3) 线性表的修改
来源:互联网 发布:java 神经网络框架 编辑:程序博客网 时间:2024/06/06 01:06
问题及代码
/* *Copyright(c)2017,烟台大学计算机学院 *All right reserved. *文件名:main.cpp list.h list.cpp *作者:王万兴 *完成日期:2017年9月20日 *版本号:v1.0 * *问题描述:线性表的修改 *输入描述:无 *程序输出:见窗口 */#include "list.h"#include "stdio.h"int main(){ SqList *sq; InitList(sq); ListInsert(sq, 1, 5); ListInsert(sq, 2, 3); ListInsert(sq, 1, 4); DispList(sq); return 0;}void InitList(SqList *&L) //引用型指针{ L=(SqList *)malloc(sizeof(SqList)); //分配存放线性表的空间 L->length=0;}void DestroyList(SqList *&L){ free(L);}bool ListInsert(SqList *&L,int i,ElemType e){ int j; if (i<1 || i>L->length+1) return false; //参数错误时返回false i--; //将顺序表逻辑序号转化为物理序号 for (j=L->length; j>i; j--) //将data[i..n]元素后移一个位置 L->data[j]=L->data[j-1]; L->data[i]=e; //插入元素e L->length++; //顺序表长度增1 return true; //成功插入返回true}bool ListDelete(SqList *&L,int i,ElemType &e){ int j; if (i<1 || i>L->length) //参数错误时返回false return false; i--; //将顺序表逻辑序号转化为物理序号 e=L->data[i]; for (j=i; j<L->length-1; j++) //将data[i..n-1]元素前移 L->data[j]=L->data[j+1]; L->length--; //顺序表长度减1 return true; //成功删除返回true}运行结果
知识点总结
线性表元素的插入有三种情况,在头插入,在尾插入和中间插入,相应的要移动插入元素后面元素的位置,尾插不需要移动。
阅读全文
0 0
- 第三周项目一(3) 线性表的修改
- 第三周项目1(3)对线性表的修改
- 第三周 项目一 线性表(一)--顺序表
- 第三周项目一(1) 建立线性表
- 第三周 线性表(-)--顺序表 项目四--顺序表的应用 问题一
- 第三周 线性表(-)--顺序表 项目四--顺序表的应用 问题一
- 第三周项目一(2) 对线性表的查看
- 第三周项目--线性表
- C/C++ 第三周线性表项目(3) 建设“顺序表”的算法库
- 第三周项目四 线性表的应用
- 第三周项目1(1) 建立线性表
- 第三周-项目1-建立线性表
- 第三周实践项目1--顺序表的基本运算(3)插入.删除数据,初始化.销毁线性表
- C/C++ 第三周线性表项目(1) 顺序表的基本运算
- C/C++ 第三周线性表项目(2) 顺序表的应用
- 第三周项目1(2)对线性表的查看
- 第三周 项目一-顺序表的基本运算(3)
- 第三周项目一(3)
- 会话跟踪技术
- 数人云|7大ChatOps&5种团队协作工具助力DevOps实践
- laydate.js绑定点击事件和日期格式化
- Stanford分词实战
- 关于android UI适配的一些思考
- 第三周项目一(3) 线性表的修改
- protobuf
- Spring
- django用migrate在已有数据库中新建表
- 计算机网络基础知识-相关问题
- 短实习--Oracle(基础知识)
- Qt里面登录对话框Dialog的show()和exec()
- 技术分析之Hibernate的关联关系映射之多对多映射
- 二叉树的镜像