试设计一个算法,删除一个顺序表从第i个元素开始的k个元素
2015-05-15 22:03
288 查看
试设计一个算法,删除一个顺序表从第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个元素。
- 编写一个算法,从顺序表中删除自第i个元素开始的k个元素
- 设计一个算法,从顺序表中删除所有值为x的元素
- 《数据结构》2.10设计一个算法,删除顺序表中值为item的元素,要求算法的时间复杂度是O(n),空间复杂度是O(1)
- 数据结构:有人设计以下算法用于删除整数顺序表L中所有值在[x,y]范围内的元素,该算法显然不是高效的,请设计一个同样功能的高效算法。
- 说你有一个数组,其中第i个元素是第i天给定股票的价格。设计一个算法来找到最大的利润,最多可以完成两个交易。
- 设计删除顺序表中【x,y】中的所有元素算法
- 风口之下,猪都能飞。当今中国股市牛市,真可谓“错过等七年”。 给你一个回顾历史的机会,已知一支股票连续n天的价格走势,以长度为n的整数数组表示,数组中第i个元素(prices[i])代表该股票第i天的股价。 假设你一开始没有股票,但有至多两次买入1股而后卖出1股的机会,并且买入前一定要先保证手上没有股票。若两次交易机会都放弃,收益为0。 设计算法,计算你能获得的最大收益。 输入数值范围:2<=n<
- 给出一个循环双链表,p指向第一个元素值为x的节点,设计算法删除节点*p
- 已知线性表中元素以值递增有序排列,并以单链表作为存储结构,设计一个算法,删除表中值相同的多余元素
- 设顺序表a中的数据元素递增有序,试设计一个算法,将x插入到顺序表的适当位置,以保持该表的有序性。
- 长度为n的顺序表L,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除线性表中所有值为X的元素
- 3325顺序表的应用2::多余元素删除之建表算法
- 数据结构和算法设计专题之---单链表中在指定的节点前面插入以及删除一个节点
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 数据结构和算法设计专题之---单链表中在指定的节点前面插入以及删除一个节点
- 设计一个最优算法来查找一n个元素数组中的最大值和最小值。已知一种需要比较2n次的方法,请给一个更优的算法。
- 设定二维整数数组B[0..m-1,0..n-1]的数据在行,列方向上都按从小到大的顺序排序,且整形变量x中的数据在B中存在。设计一个算法,找出一对满足B[i][j]=x的I,j值,要求比较次数不超过m
- 顺序栈S中有2n个元素,从栈顶到栈底的元素依次为a2n、a2n-1、…、a1。试设计一个算法:通过一个循环队列重新排列该栈中的元素,使得从栈顶到栈底的元素先偶数,后奇数