精华内容
下载资源
问答
  • 线性表插入元素
    千次阅读
    2018-08-13 08:51:14

    1196: 线性表插入元素

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 14  解决: 12
    [提交][状态][讨论版][命题人:uzzoj]

    题目描述

    线性表的顺序存储中,有态存储,请用动态存储形式实现线性表的创建和插入某个元素,并显示输出结果

    输入

    输入包括:首先输入线性表元素的个人,然后输入相应的元素,输入插入的位置以及元素

    输出

    输出插入相应元素后的线性表

    样例输入

    5 1 2 3 4 5
    2 6

    样例输出

    1 6 2 3 4 5

     

    #include <stdio.h>
    #include <stdlib.h>
    #define OK 1
    #define ERROR 0

    typedef struct
    {
        int *elem;
        int length;
        int listsize;
    } SqList;
    int initSqList_Sq(SqList *LA,int a_len)
    {
    //建立一个空表格
        LA->elem=(int *)malloc(sizeof(int)*a_len);
        if(!LA->elem)return ERROR;
        LA->length=0;
        LA->listsize=a_len;
        return OK;
    }
    int insertList(SqList *LA,int weizhi,int shu )
    {
        int j;
        if(weizhi<1&&weizhi>LA->length+1) return ERROR;

        for(j=LA->length; j>=weizhi; j--)
        {
            LA->elem[j]=LA->elem[j-1];
        }
        LA->elem[weizhi-1]=shu;
        LA->length++;
        return OK;
    }
    int main()
    {
        SqList *LA;
        int a_len,charu,shu,i;
        LA=(SqList *)malloc(sizeof(SqList));

        scanf("%d",&a_len);
        initSqList_Sq(LA,a_len);
        for(i=0; i<a_len; i++)
        {
            scanf("%d",&LA->elem[i]);
            LA->length++;
        }
        scanf("%d %d",&charu,&shu );
        insertList(LA,charu,shu);
        for(i=0; i<LA->length; i++)
        {
            printf("%d ",LA->elem[i]);
        }
    }

     

    更多相关内容
  • 线性表插入元素算法(顺序存储)

    千次阅读 2020-10-25 22:14:44
    打字费时间 传图片吧

    打字费时间 

    传图片吧

    展开全文
  • 设顺序表L是递增有序表,编写一个算法将x插入L中,使L仍然有序。如果是链表表示,是否可以实现以上操作,如果可能,编写一个算法予以实现。
  • 数据结构—关于线性表插入元素

    千次阅读 2016-09-01 19:33:06
     //在顺序线性表L中第i个位置之前插入新的元素e   //i的合法值为1 < =i < =ListLength_Sq(L)+1   if(i  < 1  || i >  L.length + 1)   return false; //i值不合法   if(L.length  > =...
    1. <pre class="html" name="code"><img src="https://img-my.csdn.net/uploads/201210/30/1351565091_4900.JPG" alt="">#include <iostream>  
    2.   
    3. using namespace std;  
    4.   
    5. #define LIST_INIT_SIZE 100 //初始化分配量  
    6.   
    7. #define LISTINCREMENT 10 //存储空间的分配增量  
    8.   
    9.   
    10. typedef int Status;  
    11.   
    12. typedef int ElemType;  
    13.   
    14. typedef struct{  
    15.   
    16.     ElemType *elem;//储存空间基址  
    17.   
    18.     int length;//当前长度  
    19.   
    20.     int listsize;//当前的分配的存储容量 (以sizeof (ElemType)为单位)  
    21. }SqList;  
    22.   
    23. Status InitList_sq(SqList &L){  
    24.   
    25.     L.elem = (ElemType *)malloc(LIST_INIT_SIZE *sizeof(ElemType));  
    26.   
    27.     if ( !L.elem)exit(1);//存储分配失败  
    28.   
    29.     L.length = 0; //空表长度为0  
    30.   
    31.     L.listsize =LIST_INIT_SIZE;//初始储存容量  
    32.   
    33.     return true;  
    34. }  
    35.   
    36.   
    37. Status ListInsert_Sq(SqList &L,int i,ElemType e)      
    38. {      
    39.     //在顺序线性表L中第i个位置之前插入新的元素e        
    40.     //i的合法值为1<=i<=ListLength_Sq(L)+1        
    41.     if(i <1 || i> L.length + 1)      
    42.         return false;   //i值不合法        
    43.     if(L.length >= L.listsize)   //当前存储空间已满,增加分配        
    44.     {      
    45.         ElemType *newbase = (ElemType *)realloc(L.elem,(L.listsize + LISTINCREMENT )* sizeof(ElemType));      
    46.         if(!newbase)      
    47.             exit(1);    //存储分配失败        
    48.         L.elem = newbase;//新基址        
    49.         L.listsize += LISTINCREMENT;    //增加存储容量        
    50.     }      
    51.       
    52.     ElemType *q = &(L.elem[i-1]);//q为插入位置        
    53.       
    54.     for(ElemType *p = &(L.elem[L.length-1]);p>=q;--p)      
    55.         *(p+1) = *p;    //插入位置及之后的元素右移        
    56.       
    57.     *q = e;     //插入e        
    58.     ++L.length;     //表长增1     
    59.       
    60.     ElemType l = *q; //用一个自定义的变量 返回指针q中所指代的值  
    61.     return l;      
    62. }     
    63.   
    64. int main()      
    65. {      
    66.     SqList L;      
    67.     
    68.     InitList_sq(L);     
    69.           
    70.     
    71.     ElemType s = ListInsert_Sq(L,1,1234);    
    72.        
    73.     cout << s <<endl;    
    74.     
    75.     
    76.     return 0;      
    77. }    
    78.  </pre><br>  
    79. <pre></pre>  
    展开全文
  • 线性表插入删除

    2021-05-22 14:47:00
    已结贴√问题点数:20回复次数:6 线性表插入删除#include"stdio.h"#include"stdlib.h"int*inistl(int m,int *n){int*v=NULL;v=malloc(m*sizeof(int*));n=0;return v;}void insl(int*v,int m,int*n,int i,int b){...

    已结贴√

    问题点数:20 回复次数:6

    ca56232b3bbedf9a539d07f37fffb99a.gif

    3144d8b7615c79d9f638db40d5689d26.gif

    a218af6549b45ee526caf607ebff1358.gif

    0f8df0e29816ae721419de940fb833d1.gif

    线性表的插入删除

    #include"stdio.h"

    #include"stdlib.h"

    int*inistl(int m,int *n)

    {int*v=NULL;

    v=malloc(m*sizeof(int*));

    n=0;

    return v;

    }

    void insl(int*v,int m,int*n,int i,int b)

    {

    int j;

    if(*n>=m)

    {printf("the stack is overflow\n");

    return;

    }

    if(i>*n-1) i=*n+1;

    if(i<1) i=1;

    for(j=*n;j>=i;j--)

    v[j]=v[j-1];

    v[i-1]=b;

    *n=*n+1;

    }

    void desl(int*v,int m,int*n,int i)

    {int j;

    if(*n==0)

    {printf("the stack is underflow\n ");

    return;

    }

    if((i<1)||(i>*n))

    {printf("not this element in the list!\n");

    return;

    }

    for (j=i;j<=*n-1;j++)

    v[j-1]=v[j];

    *n=*n-1;

    return;

    }

    void input(int*v,int n)

    {int i;

    for(i=0;i

    scanf("%d",v+i);

    }

    void output(int*v,int n)

    {int i;

    for(i=0;i

    printf("%d",*(v+i));

    }

    serch(int*v,int n,int x)

    {int k;

    k=0;

    while  ((k

    if (k==n)  k=-1;

    return(k);

    }

    bserch(int*v,int n,int x)

    { int i,j,k;

    i=1; j=n;

    while (i<=j)

    { k=(i+j)/2;

    if (v[k-1]==x)  return(k-1);

    if (v[k-1]>x)  j=k-1;

    else i=k+1;

    }

    return(-1);

    }

    bubsort(int v[],int n)

    { int m,k,j,i,d; k=0;

    m=n-1; while (k

    { j=m-1; m=0;

    for(i=k;i<=j;i++)

    if (v[i]>v[i+1])

    {d=v[i];v[i]=v[i+1];v[i+1]=d;m=i;}

    j=k+1; k=0;

    for (i=m;i>=j;i--)

    if (v[i-1]>v[i])

    {d=v[i];v[i]=v[i-1];v[i-1]=d;k=i;}

    }

    return(i);

    }

    qksort1(int p[],int m,int n)

    { int split(p,m,n) ;

    int  i;if (n>m)

    {

    i=split(p,m,n);

    qksort1(p,m,i-1);

    qksort1(p,i+1,n);

    }

    return(i);}

    int split(p,m,n) ;

    int m,n, p[];

    { int i,j,k,u,t;

    i=m; j=n;k=(i+j)/2;

    if ((p[i]>=p[j])&&(p[j]>=p[k])) u=j;

    else if ((p[i]>=p[k])&&(p[k]>=p[j])) u=k;

    else u=i;

    t=p[u]; p[u]=p[i];

    while (i!=j)

    { while ((i=t)) j=j-1;

    if (i

    while ((i

    if (i

    {p[j]=p[i]; j=j-1;}

    }

    p[i]=t;

    return(i);

    }

    void main()

    {int *v,m,*n,i,b,x,y,k;

    n=(int *)malloc(sizeof(int));

    printf("请输入线性表容量:");

    scanf("%d",&m);

    v=inistl(m,n);

    printf("请输入线性表实际个数:");

    scanf("%d",n);

    printf("请输入线性表起始元素:");

    input(v,*n);

    printf("请输入线性表插入点位置:");

    scanf("%d",&i);

    printf("请输入线性表插入元素:");

    scanf("%d",&b);

    insl(v,m,n,i,b);

    printf("输出操作后线性表:");

    output(v,*n);

    printf("\n");

    printf("请输入线性表删除点位置:");

    scanf("%d",&i);

    desl(v,m, n, i);

    printf("输出操作后线性表:");

    output(v,*n);

    printf("\n");

    printf("请输入要查找的元素:");

    scanf("%d",&x);

    printf("\n");

    printf("please put choose 1 is search 2 is bsearch\n");

    scanf("%d",&y);

    switch(y)

    {case 1:k=serch(v,*n,x);

    case 2:k=bserch(v,*n,x);}

    if(k==-1)

    printf("not find the element in line!\n");

    else printf("the element in the line is %d\n",++k);

    }

    想实现线性表的删除插入功能 哪里出错了 急啊

    展开全文
  • 1464 数据结构:线性表插入元素

    千次阅读 2016-04-01 19:21:29
    数据结构:线性表插入元素 Time Limit(Common/Java):1000MS/3000MS Memory Limit:65536KByte Total Submit:104 Accepted:57 Description 线性表a(有n个元素)和线性表b(有m个元素)的元素均为整数。现将b中...
  • 线性表中任意插入数,自己规定插入数的位置和数,自己建立线性表
  • 数据结构-线性表插入 C语言源码

    千次阅读 多人点赞 2019-03-17 12:54:31
    #数据结构-线性表插入操作-源码 #include&amp;amp;amp;lt;stdio.h&amp;amp;amp;gt; #include&amp;amp;amp;lt;stdlib.h&amp;amp;amp;gt; struct charu{ int*elem; int length; int listsize; };/...
  • 数据结构--关于线性表插入元素

    千次阅读 2012-10-16 11:08:03
    //在顺序线性表L中第i个位置之前插入新的元素e //i的合法值为1(L)+1 if(i || i> L.length + 1) return false; //i值不合法 if(L.length >= L.listsize) //当前存储空间已满,增加分配 { ElemType...
  • 线性表元素插入和删除

    千次阅读 2020-08-10 09:24:01
    在开始结点前插入元素 等同在头结点后插入元素 不含头结点的单链表 在开始结点前插入元素 s->next = head; head = s; 因此含有头结点的单链表比不含头结点的单链表在操作上简单 就是因为含有头结点的单链表在...
  • 线性表元素插入操作

    千次阅读 2018-01-25 22:16:48
    printf("插入位置不合法"); } for(k=l.last;k>=i-1;k--) l.elem[k+1]=l.elem[k]; l.elem[i-1]=e; l.last++; for(k=0;k;k++) printf("%d\t",l.elem[k]); } int main(void) { int m,p,e,j; seqlist l; ...
  • printf("\n请输入要插入元素的位置:"); scanf("%d",&b); InitVal(&Elem);//初始化线性表Elem printf("插入前的线性表元素:\n"); for (int i = 0; i ; i++) { printf("%d ", Elem.data[i]); //输出插入前Elem中...
  • 1、编写程序,实现以下操作:在线性表插入一个元素,再删除指定位置的元素,分别输出插入、删除后的线性表。 2、在顺序表中设计函数实现以下操作: (1).求顺序表中的最大值和最小值。 (2).在顺序表中删除具有最小值的...
  • 插入操作 插入操作的算法: -如果插入位置不合理抛出异常, ...-要插入元素填入到第i个位置 -线性表长度加一 //插入操作 Status InsertElem(sqlist *l,int i,Status *e) { int k; if((i<1)||...
  • 线性表插入
  • 线性表中指定位置插入某个元素

    千次阅读 2019-01-19 03:20:38
    在表中插入某个元素是管理数据的一个重点。我个人觉得,这一操作不容忽视,因此以本文来加强对该操作的理解,同时以画图形式展示整个过程,希望能对各位读者有所帮助。 代码如下: #define LISTSIZE 100 typedef...
  • 如何对一个线性表进行插入操作

    千次阅读 2020-03-30 20:28:49
    为了在线性表的某两个元素之间插入一个数据元素,则需将这两个元素中的第2个至最后一个数据元素依次往后移动一个位置。一般情况下,在第i(1<i≤n)个元素之前插入一个元素时,需将第i至第n(共n-i+1)个元素向后...
  • Insert就是将一个新元素插入线性表,使得插入后的结果有序 InsertFront就是将一个新元素插在线性表的最前面 InsertRear就是将一个新元素插在线性表的最后面 DeleteFront就是将线性表的最前面的元素删除 ClearList...
  • C语言线性表插入删除操作

    千次阅读 2022-04-19 16:10:21
    线性表起始长度从1开始,本质是封装一个数组 */ typedef int Status; // typedef 关键字来定义自己习惯的数据类型名称,来替代系统默认的基本类型名称、数组类型名称、指针类型名称与用户自定义的结构型名称、共用...
  • 线性表插入算法

    千次阅读 2019-08-31 10:06:06
    基本的插入算法 <1>理论分析: (1)入口判断(1.容量是否充足;2.插入位置是否合理)。 (2)后移,即a[i]-a[n]全部后移。 (3)插入新元素。 (4)表长加一。 <2>算法描述: (1) if(L.n==MAXSIZE) ...
  • 线性顺序表的插入函数
  • 数据结构线性表算法中元素插入或删除(前移或后移)参数为“+1”和“-1”(python为例)
  • 线性表的初始化及插入元素操作

    千次阅读 2018-06-06 13:35:04
    C语言实现 #include&amp;lt;stdio.h&amp;gt; #include&amp;lt;malloc.h&amp;gt; #include&amp;lt;stdlib.h&... // 定义int类型指针指向数组,elem为数组首元素地址 i...
  • 线性表从第i个元素插入

    千次阅读 2021-05-17 01:35:00
    // 链表2.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 //群:970353786 #include <stdio.h> #include <malloc.h>...//初始化线性表 void Initlist(Sqlist& sq) {
  • 定义线性表结构 typedef struct SQLIST { int *list; int len; int maxlen; }L; 创建表 L* creatlist(int maxlen) { L *sqlist= (L*)malloc(sizeof(L)); if (sqlist != NULL) { sqlist->list = (int...
  • package XB;/*** 通过接口定义一组...//返回线性表元素的个数(数组下标从0开始)boolean isEmpty();//判断线性表中是否(是否用boolean)包含元素,即判断线性表是否为空void insert(int i,Object e) ;//为了元素的...
  • 线性表插入

    2022-04-22 18:29:16
    这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、...
  • 线性表插入元素

    2011-08-30 21:05:00
    写这个算法花了很长一段时间,唉,看来对线性表还是不够理解,继续努力,下面是代码 #include <iostream> using namespace std; #define maxsize 10 #define sizeincrement 5 typedef int elemtype; ...
  • 线性表是由n(n>= 0)个数据元素所构成的有限序列,且数据类型相同。 线性表中数据元素之间具有一种线性的或“一对一”的逻辑关系。线性表是一种线性结构。 线性表可以用顺序存储和链式存储两种存储结构来表示。...
  • 线性表之顺序存储(二)顺序表的插入顺序表的删除(两种方法)按照元素位置删除按照元素的值删除(把从头到尾第一个和所给的元素值相同的值删除)   上一篇讲了顺序表的初始化和倒序输出,现在来讲一讲顺序表的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 79,053
精华内容 31,621
关键字:

线性表插入元素