比较简单,把代码粘出来

#include <iostream>
using namespace std;
#define ListSize 100
struct SqList{int data[ListSize];int length;
};void show(SqList L){for (int i = 0; i < L.length; i++){cout << L.data[i] << " ";}cout << endl;
}
bool ListInsert(SqList &L, int i, int e){// 把e插入道顺表表中第i个位置// 1.判断if (i < 1 || i > L.length) return false;if (L.length >= ListSize) return false;// 2.执行for (int j = L.length; j >= i; j--){L.data[j] = L.data[j - 1];}L.data[i - 1] = e;L.length++;return true;
}bool ListDelete(SqList &L, int i, int &e){// 1.判断if (i < 1 || i > L.length) return false;// 2.执行e = L.data[i - 1]; // 被删除的元素赋值给efor (int j = i; j < L.length; j++){L.data[j - 1] = L.data[j];}// 3.处理L.length--;return true;
}void RemoveDuplicate(SqList &L){int flag = L.data[0];for (int i = 1; i < L.length; i++){if (L.data[i] == flag){ListDelete(L, i + 1, flag);i--;}else {flag = L.data[i];}}
}
int LocateElem(SqList L, int e){// 查找顺序表中值为e的元素, 如果查找成功返回元素位序, 否则返回0for (int i = 0; i < L.length; i++){if (L.data[i] == e){return i + 1;}}// 处理return 0;
}SqList merge(SqList L1, SqList L2){// 默认L1长度大于L2SqList ansL;ansL.length = L1.length + L2.length;int i = 0, j = 0, k = 0;while(i < L1.length && j < L2.length){if (L1.data[i] <= L2.data[j]){ansL.data[k++] = L1.data[i++];}else {ansL.data[k++] = L2.data[j++];}}while(i < L1.length) ansL.data[k++] = L1.data[i++];while(j < L2.length) ansL.data[k++] = L2.data[j++];return ansL;
}
int main(){SqList L;L.length = 10;for (int i = 0; i < 10; i++){L.data[i] = i;}cout << "初始的顺序表为:" << endl;show(L);cout << "在第第二个位置插入-1" << endl;ListInsert(L, 2, -1);cout << L.length << endl;show(L);int item = 0;cout << "删除第二个元素" << endl;if (ListDelete(L, 2, item)){cout << "删除成功, 第二个元素是: " << item << endl;};cout << "删除后的List:" << endl;show(L);cout << "查找List里是否有值为3的元素" << endl;int ans = LocateElem(L, 3);cout << "元素为3的下标是第"<< ans << "个" << endl;cout << endl;cout << "更新List为长度为5的有序顺序表"<< endl;for (int i = 0; i < 2; i++){L.data[i] = 1;}for (int i = 2; i < 5; i++){L.data[i] = 2;}L.length = 5;show(L);cout << "去重:" << endl;RemoveDuplicate(L);show(L);cout << "两个顺序表合并成为新的有序表:" << endl;SqList l1, l2;l1.length = 3;for (int i = 0; i < 3; i++){l1.data[i] = i + 1;}l2.length = 5;for (int i = 0; i < 5; i++){l2.data[i] = (i + 1) * 2;}cout << "顺序表1:" << endl;show(l1);cout << "顺序表2" << endl;show(l2);SqList ansList =  merge(l1, l2);cout << "合并后:" << endl;show(ansList);return 0;
}

数据结构复习之顺序表相关推荐

  1. 数据结构之——《顺序表》

    数据结构之--<顺序表> 1.含义 2.分类 3.接口函数实现 4.顺序表的优缺点 1.含义 顺序表示用一段纹理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储,在数组 ...

  2. 【数据结构】【顺序表】 SqList *L与SqList*L的区别

    [数据结构][顺序表] SqList *&L与SqList*L的区别 显然,对于顺序表的抽象数据模型中的函数,其参数使用各不相同. SqList *&L的情况 它的意思是,L是对Lis ...

  3. 数据结构之动态顺序表(含游戏菜单)

    上一篇文章我们谈了数据结构的静态顺序表,以及实现了静态顺序表,具体可以看我的上一篇文章->>>数据结构之静态顺序表. 我们可以知道,静态顺序表的缺点是:  因为使用的是定长数组,所以 ...

  4. java数据结构实验一顺序表,java数据结构实验代码之升序顺序表

    java数据结构实验代码之升序顺序表 数据结构实验报告 学院:管理学院 班级:13电子商务(1)班 姓名:廖秋君 学号:3213004779 2014年 10月 23 日 目录 一.需求分析----- ...

  5. 数据结构学习笔记——顺序表的基本操作(超详细最终版+++)建议反复看看ヾ(≧▽≦*)o

    目录 前言 一.顺序表的定义 二.顺序表的初始化 三.顺序表的建立 四.顺序表的输出 五.顺序表的逆序输出 六.顺序表的插入操作 七.顺序表的删除操作 八.顺序表的按位和按值查找 基本操作的完整代码 ...

  6. 数据结构之基于顺序表的插入排序

    基于顺序表的插入排序(常规插入排序,二分插入排序,希尔排序) 这三种的都是插入排序算法的时间复杂度基本相似,但由于希尔排序不同于其他排序方式的思想,所以其时间复杂度会有所不同. 常规插入排序:O(n2 ...

  7. 数据结构与算法 | 顺序表

    顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储.在数组上完成数据的增删查改. 对于表,栈,队列,树,图等等数据结构,我们都可通过选择顺序结构或者链式结构来进行实 ...

  8. c语言编程文件中删除数据结构,C语言数据结构实战(一)顺序表的插入与删除

    今天学习了思成老师的数据结构实战教程 写了一个顺序表 插入和删除的操作 把源码共享给大家 一共包括list.c stu.h main.c list.h   .h文件是头文件 需要引入 具体的功能我都已 ...

  9. 数据结构与算法顺序表数组版

    博主还在学校,写网络编程特别是后面的线程和多路I/O实在是太费精力,所以博主先把数据结构多跟新一点,也正好把学校的C语言数据结构的作业做了,正好一举两得 这个内容比较简单,就不再细说. #includ ...

最新文章

  1. HDU1533(最小权完美匹配)
  2. Flutter 2 源码阅读
  3. 如何删除数据库中的所有用户表(表与表之间有外键关系)
  4. Python3 爬虫实战 — 58同城武汉出租房【加密字体对抗】
  5. Rust 中的继承与代码复用
  6. 数据库事物用法 SET XACT_ABORT ON
  7. Cookie字符串转Map集合方法
  8. 用友u8数据库表结构
  9. 科大讯飞免切换语音输入,留住更美乡音!
  10. c语言综合性程序设计,《C语言程序设计》综合性实验报告撰写格式
  11. 下载water mask 矢量数据
  12. UDS协议(史上最全)
  13. yum无法安装wget
  14. html如何设置图片置顶,css怎么设置图片间距?
  15. Mac OS X中virtualenv里python shell无法使用光标键问题的解决
  16. 【java毕业设计】基于java+SSH+jsp的酒水销售系统设计与实现(毕业论文+程序源码)——酒水销售系统
  17. Windows系统上的软件(如:爱奇艺万能播放器)固定任务栏图标后,打开后出现新任务栏图标
  18. 话说丢帧率系列---帧间隙
  19. OfficeMalScanner(宏病毒分析)软件分享,绝对免费!
  20. 月球轨道周期变化将造成2030年代地球沿海出现涨潮洪水

热门文章

  1. 【钓鱼】与【反钓鱼】的技术剖析
  2. QT与JavaScript交互/Qt调用JS脚本
  3. java感谢地说说_感谢相遇的句子
  4. 【DL】第 2 章 :变分自动编码器(VAE)
  5. C4D R19学习之 001界面认识
  6. Mongodb数据 ,聚合 aggregate
  7. opencv4.5.5+qt5.15.2+vtk9.1+mingw81_64编译记录
  8. SM2SM4实现字符串和文件的数字信封(小文件不支持超过堆内存的大文件)
  9. 免费的DNG格式图片转换器—“DNG Converter”
  10. 滚石最伟大的100首经典英文歌曲