1. /*ListInsert(*L,i,e):在线性表L中的第i个位置插入新元素e,L的长度加1*/
  2. /*
  3. 顺序存储线性表的插入算法思路:
  4. 1。如果插入的位置不合理,抛出异常
  5. 2。如果线性表的长度大于数组的长度,则抛出异常或动态增加容量
  6. 3。从最后一个元素开始向前遍历到第i个位置,分别将他们都向后移动一个位置
  7. 4。将要插入元素填入位置i处
  8. 5。表长加1
  9. */
  10. #include <iostream>
  11. using namespace std;
  12. typedef int datatype;
  13. /*顺序线性表的存储结构*/
  14. #define MAXSIZE 100
  15. typedef struct
  16. {
  17. datatype data[MAXSIZE];
  18. int len;
  19. }SequenList;
  20. int insert(SequenList *L,int i,int e)
  21. {
  22. int j;
  23. if (i < 1 || i > L->len+1 || L->len >= MAXSIZE) /*判断位置i是否存在以及是否有空的*/
  24. {
  25. printf( "Error");                   /*存储单元*/
  26. }
  27. else
  28. {
  29. /*for(j=(*L).len-1;j>=i-1;j--)*/
  30. for(j=L->len-1;j>=i-1;j--)
  31. {
  32. /*将要插入位置后数据元素向后移一位 */
  33. L->data[j+1]=L->data[j];
  34. }
  35. L->data[i-1]=e; /*将新元素插入*/
  36. L->len=L->len+1;
  37. }
  38. return 0;
  39. }
  40. int main(void)
  41. {
  42. int i,InsertData,InsertLocation;
  43. SequenList List;
  44. List.len=0;//终端节点下标
  45. for(i=0;i<5;i++)
  46. {   /*随机生成5个数*/
  47. List.data[i]=rand()%10;
  48. List.len++;
  49. cout<<List.data[i]<<"  "; }
  50. cout<<endl;
  51. cout<<"输入要添加的数据:";
  52. cin>>InsertData;
  53. cout<<"输入要添加的位置:";
  54. cin>>InsertLocation;
  55. insert(&List,InsertData,InsertLocation);
  56. for(i=0;i<List.len;i++)
  57. {
  58. cout<<List.data[i]<<"  ";
  59. }
  60. /* 暂停一会,也可以使用system("pause") */
  61. getchar();
  62. getchar();
  63. cout<<endl;
  64. return 0;
  65. }
Microsoft Visual C++ 6.0 下运行成功。

转载于:https://blog.51cto.com/liam2199/1024865

数据结构—顺序表的插入算法相关推荐

  1. 数据结构顺序表学习小结

    一.基本概念: 数据>数据元素>数据项 数据元素是数据的基本单位 数据项是数据的最小单位 数据元素是带有结构的各项数据元素的集合 数据结构包括逻辑结构和存储结构两个层次 二.算法 一个算法 ...

  2. 顺序表的插入与删除java_C++实现顺序表的常用操作(插入删出查找输出)

    实现顺序表的插入,删除,查找,输出操作在C语言中经常用到.下面小编给大家整理实现代码,一起看下吧 代码如下所示: #include using namespace std; #define MAXSI ...

  3. C语言链表的转置算法,c语言编程集 数据结构 顺序表 点链表 数制转换 矩阵转置.doc...

    c语言编程集 数据结构 顺序表 点链表 数制转换 矩阵转置 #include "stdio.h" #include "malloc.h" /*typedef s ...

  4. 考研数据结构之线性表(1.7)——练习题之A和B两个顺序表中相同元素组成一个新的从大到小的有序顺序表C的算法(C表示)

    题目 设A和B是两个顺序表,其元素按递增的顺序排列.编写一个将A和B中相同元素组成一个新的从大到小的有序顺序表C的算法. 分析 在归并算法的基础上稍加改动,只需要将当前扫描到的相等元素归入C表即可. ...

  5. 数据结构-顺序表结构的实现C语言(全代码)

    课程设计题目 设计出顺序表结构的相关函数库,以便在程序设计中调用. 题目要求 (1)包括线性表的各种基本函数以及常用函数(自己确定函数.函数形式及理由) (2)最好能借助语言环境实现图形显示功能,以便 ...

  6. C#数据结构-顺序表

    顺序表,顾名思义存储在计算机指定内存区域的一块连续的存储结构,跟我们一起排队做广播体操的那种方式 存储物理结构:物理内存空间上是连续的 存储逻辑关系:存储值之间的关系为一对一 使用场景:一般访问数据量 ...

  7. C语言创建顺序表并插入元素 详细注释

    顺序表是用一组地址连续的存储单元依次存储数据元素的数据结构.顺序表是线性表的一种,线性表是最常用且最简单的一种数据结构,一个线性表是 n 个数据元素的有限序列.我们使用 c 语言来创建顺序表并插入元素 ...

  8. 数据结构-顺序表(动态分配存储空间)

    数据结构-顺序表(动态分配存储空间) (1)顺序表的结构定义: 结构型定义:(动态分配存储空间) /*** 动态分配存储空间*/ #define InitSize 100 //动态分配存储空间时,不限 ...

  9. C语言/C++常见习题问答集锦[八十三]之数据结构顺序表(operand types are error: no match for “operator==“)

    C语言/C++常见习题问答集锦[八十三]之数据结构顺序表{operand types are error: no match for "operator=="} 程序之美 前言 主 ...

最新文章

  1. 神策数据保险行业解决方案,正式上线官网!
  2. curl命令java_Java 应用线上问题排查思路、工具小结
  3. 数据链路层:ARP协议详解(绝对经典)
  4. ele-plus包的安装和使用
  5. 人工智障学习笔记——梯度下降(2)优化算法
  6. 中级联选择中多级选择方法使用_PCB加工中,使用选择性波峰焊的优缺点是什么?...
  7. win11更新后黑屏怎么办 Windows11更新后黑屏的解决方法
  8. java无法启动安装程序,Windows Fix中无法启动Java更新安装程序错误
  9. 如何从零开始学android?
  10. 单位工作制度牌展示_员工工号牌管理制度
  11. 激活函数:阶跃函数、sigmoid函数、ReLU函数、softmax函数
  12. c语言的typedef struct 对应java参数类型,JNA实战系列:02JNA与C语言中的数据类型映射以及复杂结构体传参示例...
  13. redisson分布式锁实现原理
  14. 2019 年第 34 周 DApp 影响力排行榜 | TokenInsight
  15. 微信公众号的封面图怎么拿到手
  16. PHP中的面向对象思想
  17. c语言整形如何正确使用除法,简单的C语言移位计算整形乘法和除法值
  18. HP Superdome定位网卡位置并更换
  19. html 在盒子中字体垂直,第五章,css行内盒模型和文字样式
  20. 掀开CC攻击的头盖骨

热门文章

  1. 从别人那拷下来的几点Session使用的经验(转载)
  2. 9102年webpack4搭建vue项目
  3. 【RPA干货来袭】 UiBot关于如何使用浏览器调用JS命令的说明
  4. Docker+Jenkins持续集成环境(3)集成PMD、FindBugs、Checkstyle静态代码检查工具并邮件发送检查结果...
  5. kentico中自定义错误页面
  6. 查看SqlServer的内存使用情况
  7. asp.net MVC中实现调取web api
  8. ado.net 修改,查询
  9. Leetcode#43Multiply Strings
  10. Linux-profile、bashrc、bash_profile之间的区别和联系