试设计一个算法,删除一个顺序表从第i个元素开始的k个元素

Posted c.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了试设计一个算法,删除一个顺序表从第i个元素开始的k个元素相关的知识,希望对你有一定的参考价值。

  • 试设计一个算法,删除一个顺序表从第i个元素开始的k个元素
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define OK 1
#define ERROR 0
#define MAXSIZE 20
typedef int ElemType;
typedef int Status;

typedef struct 

    ElemType data[MAXSIZE];
    int Length;
SqList;

//初始化顺序表
Status InitSqList(SqList * L)

    L->Length=0;
    return OK;


//顺序表的建立
Status Create(SqList * L,int n)

    srand(time(0));
    for(int i=0;i<n;i++)
    
        L->data[i]=rand()%100+1;
        L->Length++;
    
    return OK;


//顺序表的删除
Status Delete(SqList * L,int Location)

    if(L->Length==0)    //线性表为空
    return ERROR;
    if(Location<L->Length)
    
        for(int i=Location;i<L->Length;i++)
        
            L->data[i-1]=L->data[i];
        
        L->Length--;
    

    return OK;



void Print(SqList * L)

    for(int i=0;i<L->Length;i++)
    
        printf("%d ",L->data[i]);
    
    printf("\\n");



int main()

    SqList L;
    int ElemNumber;
    int Location,Number;
    InitSqList(&L);
    printf("请输入元素个数:\\n");
    scanf("%d",&ElemNumber);
    Create(&L,ElemNumber);
    Print(&L);
    printf("请输入删除的位置和删除的元素个数:\\n");
    scanf("%d%d",&Location,&Number);
    if(Number>=L.Length)
    
        printf("输入有误\\n");
        return 0;
    
    else
    
        while(Number--)
        
            Delete(&L,Location);
        
    
    Print(&L);
    return 0;

以上是关于试设计一个算法,删除一个顺序表从第i个元素开始的k个元素的主要内容,如果未能解决你的问题,请参考以下文章

设计一个算法,删除串s中从第i个字符开始的连续j个字符,说明算法所用的存储结构,并估计算法的执行时间。

C++数据结构,写一种算法,从顺序表删除第i个元素开始的第k个元素

[程序员代码面试指南]第9章-蓄水池算法

删除一维数组中所有相同的数,使之只剩下一个,数组中的数已按由小到大顺序排列。

最大K乘积问题

顺序表编程考点