精华内容
下载资源
问答
  • 例如,设当前顺序表的顺序为:“2 3 8 7 6 2 8 9 4 2” ,则按提示输入要插元素和位置“1,3”,则插入的结果为“2 3 1 8 7 6 2 8 9 4 2”。 (3)删除指定位置的一个元素。例如,设当前顺序表的顺序为:“2 3 8 7 6...
  • 这是数据结构的顺序/链实现形式,它通过动态存储的方式实现了插入
  • 递增有序顺序表插入元素的算法

    千次阅读 多人点赞 2019-03-23 11:10:28
    顺序表va中的数据元素递增有序,现将x插入顺序表的适当位置,以保持该顺序表依然递增有序。 算法思想: 1.判断该顺序表是否已满 2.查找x在顺序表a.elem[a.length]中的插入位置 i。 3.在查找到x的位置之后,...

    题目:

    设顺序表va中的数据元素递增有序,现将x插入到顺序表的适当位置,以保持该顺序表依然递增有序。

    算法思想:

     1.判断该顺序表是否已满

     2.查找x在顺序表a.elem[a.length]中的插入位置 i。

     3.在查找到x的位置之后,将a.length-i-1个元素向后移动一个位置,从最后一个元素开始向后移动一个位置。

     4.将元素x插入到位置i中。

    算法:

    Statue insertOrderList(SqList &a, ElemType x) {

        //顺序表中的元素依次递增有序,该算法将元素x插入到顺序表中,使得该顺序表依然递增有序

       //

        //先判断是否已满

       if (a.length == a.MAXSIZE) {

            return OVERFLOW;

       } else {

            i = a.length - 1;

            while (i >= 0 && x < a.elem[i]) {

                i--;

            }

            for (j = a.length - 1; j >= i + 1; j--) {//从最后一个元素开始向后移动一个位置

                a.elem[j + 1] = a.elem[j];

            }

            a.elem[i+1] = x;

            a.length++;

            return OK;

      }

    }

    展开全文
  • 有序顺序表插入数据X

    千次阅读 2020-10-23 19:17:19
    思路:设顺序表L为递增有序,从L的终端结点,往前遍历L,找到插入x的位置,插入x,将大于x的元素往后移动一个单位即可;另外,在往前扫描的过程中,可以边扫描边遍历。 代码: typedef struct{ ElementType data...

    思路:设顺序表L为递增有序,从L的终端结点,往前遍历L,找到插入x的位置,插入x,将大于x的元素往后移动一个单位即可;另外,在往前扫描的过程中,可以边扫描边遍历。

    代码:

    typedef struct{
    	ElementType  data[100];
    	int length;
    }SeqList;//顺序表存储结构;
    
    void InsertSeqList(SeqList L,ElementType x){
    	int i;//i指示位置;
    	for(i=L.length;i>0&&L.data[i-1]>x;--i){//从终端结点开始扫描,当找到第一个小于x的元素时终止; 
    		L.data[i] = L.data[i-1];//交换; 
    	} 
    	//插入x,元素数++; 
    	L.data[i] = x;
    	L.length++;
    } 

     

    展开全文
  • 顺序表插入数据

    千次阅读 2019-07-21 13:28:33
    1、创建顺序表 2、初始化顺序表 3、构建逻辑 存储结构: typedef struct{ ElemType *elem; int Length; int ListSize; }SqList; 函数:ListInsertSq(SqList &L,int Location,ElemType Elem) ...

    1、创建顺序表
    2、初始化顺序表
    3、构建逻辑

    宏定义和头文件:

    #include<stdio.h>
    #include<stdlib.h>
    #include<malloc.h>
    #define ElemType int
    #define Status int

    存储结构:

    typedef struct{
    	 ElemType *elem;
    	 int Length;
    	 int ListSize;
    }SqList;

    函数:ListInsertSq(SqList &L,int Location,ElemType Elem)

    Location:在Location前插入
    Elem:要插入的元素

    首先判断Location是否合法,不合法return -1.
    接着判断是否已经存满,存满return -1.

    在Location前插入一个数,把后面的元素都往后移一位。
    最后把要添加的数,放在Location-1处。
    Location后面一共需要移动Length-Location次,加上自己也要移动一次。
    所以移动次数为n-i+1

    主要函数代码:

    Status ListInsertSq(SqList &L,int Location,ElemType Elem){
     //首先判断传进来的位置是否正确
     if (Location<0 || Location>L.Length) { return -1; }
     //不正确的话,直接return,结束此函数 
     //接下来要判断当前的存储空间是否占满
     if (L.Length >= L.ListSize)//占满了就要再次分配内存,先定义一个新的变量,来接收更新的内存空间
     {
    	  ElemType *NewBase;
    	  NewBase = (ElemType*)realloc(L.elem, (L.ListSize + INCRESE) * sizeof(ElemType));
      /*realloc函数语法 void*realloc(void *adress,size); */
      if (!NewBase) exit(-1);//如果不成功,异常退出
    	  L.elem = NewBase; //更新新地址
    	  L.ListSize += INCRESE; //更新新线性表容量值
     }
     //开始插入,从最后一个开始往前挪
     int i = L.Length-1;
     for (int j = 1; j <= L.Length - Location+1; j++)//当前i为最后一个的下标
     {
      	L.elem[i+1] = L.elem[i]; //把当前的给后面的
      	i--;
     }
    	 L.elem[Location-1] = Elem;//最后腾出来的位置让elem上
    	 L.Length += 1;//更新Length
    	 return 1;
    }

    需要注意的是for循环的条件。

    展开全文
  • 顺序表插入、删除平均移动次数

    千次阅读 多人点赞 2020-12-03 23:46:05
    一、插入操作 二、删除操作 三、总结 一、插入操作 最好情况:在表尾插入(即i=n+1),元素后移语句将不执行,时间复杂度为0(1)。 最坏情况:在表头插入(即i=1),元素后移语句将执行n次,时间复杂度为0(n)。 ...

    更新时间:2021年8月26日

    写在前边的话:你的支持是我写作的动力,有帮助到你的话麻烦点赞收藏呦。感激不尽!如有错误也请留言指正。

    考研数据结构练习,欢迎订阅我的专辑《考研数据结构题型分类讲解练习》


    目录

    一、插入操作

    二、删除操作

    三、总结


    一、插入操作

    • 最好情况:在表尾插入(即i=n+1),元素后移语句将不执行,时间复杂度为0(1)。
    • 最坏情况:在表头插入(即i=1),元素后移语句将执行n次,时间复杂度为0(n)。
    • 平均情况:{\color{Red} \frac{n}{2}}。解释如下:

    • \sum_{i=0}^{n+1} \frac{1}{n+1}(n-i)=\frac{1}{n+1} \sum_{i=0}^{n+1}(n-i)=\frac{1}{n+1} \frac{n(n+1)}{2}=\frac{n}{2}

    举个例子

    有一个长度为8的顺序表

    如果插入8号位,一个元素都不需要移动。

    如果插入7号位,需要移动一个元素。

    同理可得出插入其他位所需要移动的次数。

    平均移动次数就是:(8+7+6+5+4+3+2+1+0)/9=\frac{1}{9}*\frac{(8+0)*9}{2} =4


    二、删除操作

    • 最好情况:删除表尾元素(即i=n),无须移动元素,时间复杂度为0(1)。
    • 最坏情况:删除表头元素(即i-1),需移动除第一个元素外的所有元素,时间复杂度为0(n)。
    • 平均情况:{\color{Red} \frac{n-1}{2}}。解释如下:
      \sum_{i=0}^{n} p_{0}(n-i)=\sum_{i=0}^{n} \frac{1}{n}(n-i)=\frac{1}{n} \sum_{i=0}^{n}(n-i)=\frac{1}{n} \frac{n(n-1)}{2}=\frac{n-1}{2}

    展开全文
  • Java实现顺序表插入算法

    千次阅读 2019-03-11 23:10:01
    public static void inser(int [ ] arr,int num,int value) { //定义一个静态的插入函数,num是要插入的值,value是数组中的索引 for(int i =0;i;i++) { //遍历数组中的每一个数 if(arr.length==0) { ...
  • 顺序表插入删除

    2015-11-03 13:00:53
    输入字符串,利用顺序表实现插入与删除操作
  • 顺序表插入操作的实现

    千次阅读 2019-03-11 13:36:52
    顺序表插入操作的实现 1000(ms) 10000(kb) 3214 / 14351 建立长度为n的顺序表,在指定的数据元素item之前插入数据元素data。如果指定的数据元素item不存在,则将data插入到顺序表的尾端。(数据类型为整型) ...
  • 在顺序表中第五个位置插入一个元素9,实现顺序表插入的基本操作,输出顺序表中所有元素 #include&lt;iostream&gt; using namespace std; #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef...
  • PAGE / NUMPAGES import java.util; import java.io; public class zhangyue130824218 { public static void main(String args[]){ File readFile=new File"F://book.txt; Scanner reader=new Scanner(System.in;...
  • 顺序表则是把线性表的节点按逻辑顺序一次存放在一组地址连续的存储单元里。 下面使用Java实现的动态顺序表,主要实现以下几个功能:  数组初始化-->打印数组元素-->打印数组元素个数和容量大小-->判断是否需要...
  • 顺序表插入删除查找操作

    千次阅读 2017-10-11 13:37:13
    线性表实验 一、实验目的 1.掌握线性表的顺序存储结构 2.验证顺序表及其基本操作...2.对已建立的顺序表实现插入、删除、查找等基本操作 代码如下 #include using namespace std; const int Max = 100; class
  • 顺序表插入元素仍保持有序

    千次阅读 2019-04-19 17:24:24
    已知顺序表递增有序,编写一个算法, 将x插入到线性表的适当位置上,以保持线性表的有序性。 代码 #include <stdio.h> #define M 100 typedef int Etype; typedef struct{ Etype elem[M]; int last; }List; ...
  • SWUSTOJ #943 顺序表插入操作的实现

    千次阅读 2019-04-24 11:09:57
    建立长度为n的顺序表,在指定的数据元素item之前插入数据元素data。如果指定的数据元素item不存在,则将data插入顺序表的尾端。(数据类型为整型)
  • 顺序表插入数据算法

    千次阅读 2017-11-03 23:38:56
    顺序表插入数据算法 实现代码: #include using namespace std; #define maxSize 100 typedef struct{ int data[maxSize]; int length; }Sqlist; int insert(Sqlist &L,int p,int e){ int i; if(pL.length+1|...
  • 以数组为基础,假设有n个元素,插入元素时,在第一个元素前插入元素,n个元素都要向后移动一位,在第二个元素前插入元素,后面的n-1个元素后移,在第i个元素前插入元素,n-i+1个元素需要后移,在最后一个元素后插入...
  • a1 1(序号) a2 2 … … – – ai-1 i-1 ai i – – ai+1 i+1 … … an n ...{ //在顺序表L中,第i个位置插入元素e,其中1&lt;=i&lt;=L -&gt; length+1 in...
  • 文章目录1、顺序表插入并递增有序已知顺序表L中的元素递增有序排列,设计算法将元素x插入到表L中并保持表L仍递增有序。2、删除顺序表元素在顺序表中删除所有元素值为x的元素,要求空间复杂度为O(1)。3、顺序表逆置以...
  • C语言创建顺序表插入元素 详细注释

    万次阅读 多人点赞 2018-04-22 18:03:22
    顺序表是用一组地址连续的存储单元依次存储...我们使用 c 语言来创建顺序表插入元素。IDE : Code::Blocks 17.12Compiler : GNU GCC Compiler/*创建顺序表插入元素*/ #include &lt;stdio.h&gt; #include...
  • 顺序表插入操作的实现 swustoj

    千次阅读 2018-04-17 22:50:00
    顺序表插入操作的实现 1000(ms) 10000(kb) 2971 / 13413建立长度为n的顺序表,在指定的数据元素item之前插入数据元素data。如果指定的数据元素item不存在,则将data插入到顺序表的尾端。(数据类型为整型)输入...
  • 创建有若干个元素(可以是整型数值)的顺序表,实现对顺序表的初始化,对已建立的顺序表插入操作、删除操作、遍历输出顺序表。 要求各个操作均以函数的形式实现,在主函数中调用各个函数实现以下操作: ( 1...
  • 顺序表插入删除操作(源程序通过上机测试)。
  • 主要介绍了插入排序的顺序表实现代码,有需要的朋友可以参考一下
  • 顺序表插入算法

    千次阅读 2014-09-22 18:59:36
     顺序表先具体为数组。  思想:数组插入一个新元素,插入元素后面的元素依次向后移动。  刚开始写,我想的是从插入位置后的第一个元素顺序依次向后移动,例如数组arr[1,2,3,4], 在第二个位置...
  • 顺序表的建立与插入
  • c语言 顺序表的基本操作(创建、初始化、赋值、插入、删除、查询、替换、输出) 1、创建、申请空间 2、初始化、顺序表数据结构大小、长度 3、赋值、顺序表数据结构赋值 4、插入、在指定位置插入数据,后续数据...
  • 线性表之顺序表插入元素

    千次阅读 2013-09-15 10:55:39
    答:通过比较在顺序表L中找到插入X的位置i,将该位置以及后面的元素后移一个位置,将X插入到位置i中,最后将L的长度增1。 #include //包含头文件   #include using namespace std; typedef struct //定义顺序表 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 509,724
精华内容 203,889
关键字:

顺序表的插入