• BNUOJ 4101(线性表的插入与删除)


    线性表插入与删除操作


    Time Limit: 1000 ms     Case Time Limit: 1000 ms     Memory Limit: 65536 KB
    Submit: 78     Accepted: 40

    [Prev][Next]

    Description

     实现线性表的插入和删除基本操作

    Input

     第一行给出线性表内现有数据元素的数目N,1<=N<=10;第二行给出N个整数:a1、a2、a3…aN,整数之间用一个空格隔开,表示线性表现有的数据元素。第三行给出两个整数K、E1,1<=K<=N,表示在第K个元素前插入值为E1的数据元素;第四行给出一个整数E2,表示在线性表中删除第一个值为E2的数据元素(假定线性表里一定存在值为E2的数据元素)。

    Output

     在一行内按次序输出进行插入和删除后线性表的所有数据元素,数据元素之间用一个空格隔开。

    Sample Input

    8
    12 13 21 24 28 30 42 77
    5 25
    24

    Sample Output

    12 13 21 25 28 30 42 77
    
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    const int N=15;
    /*
    C语言中常量都用const定义 
    #define定义的只是宏,在预处理的时候就都被替换掉了  
    const定义的应该是其值不可以被改变的变量,就是常量了,  
    它在运行的时候是确实在内存里(栈,堆,或是静态区)分配了内存的,  
    是有自己的地址的,可以做求地址运算。 
    */
    int vis[N];
    int T;
    void insert(int pos,int num)
    {
        int i,j;
        for(i=T;i>=pos;i--)
            vis[i+1]=vis[i];
        vis[pos]=num;
        T++;
    }
    void delete_output(int num)//delete为关键字
    {
        int i,j;
        for(i=1;i<=T;i++)
        if(vis[i]==num)
            break;
        for(i;i<=T;i++)
            vis[i]=vis[i+1];
        T--;
        printf("%d",vis[1]);
        for(i=2;i<=T;i++)
            printf(" %d",vis[i]);
        printf("\n");
    }
             
    int main()
    {
        int i,j;
        int pos,num1,num2;
        scanf("%d",&T);
        for(i=1;i<=T;i++)
            scanf("%d",vis+i);
        scanf("%d%d",&pos,&num1);
        insert(pos,num1);
        scanf("%d",&num2);
        delete_output(num2);
        return 0;
    }
        
    
  • 相关阅读:
    《一线架构师实践指南》第三编Refined Architecture阶段读后感
    大数据技术与应用课堂测试2-数据初级分析分类2
    大数据技术与应用课堂测试2-数据初级分析分类
    对Datax的理解
    2020春季学期第三周总结
    可测试性战术总结
    2020春季学期第一周总结
    以《淘宝网》为例,描述质量属性的六个常见属性场景
    软件架构师如何工作
    MapReduce+HIVE 课堂练习
  • 原文地址:https://www.cnblogs.com/hxsyl/p/2615889.html
Copyright © 2020-2023  润新知