1问题描述
在一个有n个整数的递增序列上进行插入和删除操作,其中整数用数组存储
2 实验目的
要求学生熟练掌握数组的增删操作,并深刻体会数组增删操作中存在的数据移动,从而认识到链表的优点
3基本要求
1 在长度为listsize的顺序表上存储n个整数组成的递增序列
2 将一个指定数据插入到有序序列中,使之仍有序
3 将有序序列中一指定数据删除
4 测试数据
用listsize=10,n=9,当建立的递增顺序表为12,13,17,21,24,28,30,42,77时,依次插入25,58的结果,在依次删除12,24的结果,这里也可以自己设定实验数据。
5实验评分:
如学生程序完全正确,且程序格式规范,可读性好,建议80分以上,如果学生的部分程序虽然存在局部问题,但某些地方具有一定的改进或创新,对于这种情况,建议评分在80分以下
如果有算法不正确或调试有问题,一般成绩不高于75分,如果有大部分程序都有问题 ,或存在抄袭,则不能及格。
插入算法:
急需实验报告,要有代码跟测试结果,用turob c做的
线性表在顺序存储结构上的插入和删除操作 1问题描述 在一个有n个整数的递增序列上进行插入和删除操作,其
答案:2 悬赏:40 手机版
解决时间 2021-03-10 17:58
- 提问者网友:蔚蓝的太阳
- 2021-03-10 07:30
最佳答案
- 五星知识达人网友:煞尾
- 2021-03-10 08:26
选择题是可以有技巧的
题目说的是n和i,也就是说n和i是具有通用性的,对任何数字都成立,那么
你想想长度为5的表,你要在第四位插入一个数,是什么样的结果呢?
就是前三位不动,然后你挤进去一个第四位数,原来的第四第五位数就只能往后移了,也就是移了两个
那么2当然应该是等于5-4+1
选B
请参考
题目说的是n和i,也就是说n和i是具有通用性的,对任何数字都成立,那么
你想想长度为5的表,你要在第四位插入一个数,是什么样的结果呢?
就是前三位不动,然后你挤进去一个第四位数,原来的第四第五位数就只能往后移了,也就是移了两个
那么2当然应该是等于5-4+1
选B
请参考
全部回答
- 1楼网友:怀裏藏嬌
- 2021-03-10 08:40
#include//c++的头文件
#include
#include
#include
#include
#define error 0
#define overflow 1
#define ok 1
using namespace std;
typedef struct
{
int *elem; //存储空间基址
int length; //当前长度
int listsize;//当前分配的存储容量
// (以sizeof(elemtype)为单位)
//int *next;
}sqlist;
void initlist(sqlist &la)
{//构造一个空线性表l
la.elem=(int *) malloc(100 *sizeof(int));//分配空间
if (!la.elem) exit(-2);//未分配则 跳出;
la.length=0;
la.listsize= 100 ;
}
int listinsert_sq(sqlist &l,int i,int e) // listinsert_sq;插入一个元素
{int *newbase;int *p,*q;
if (i<1 || i>l.length+1) return error;
if (l.length>=l.listsize)//空间不足追加
{newbase=(int*) realloc(l.elem,(l.listsize+10) *sizeof(int));
if (!newbase)
exit(-2);
l.elem=newbase; l.listsize+=10 ;
}
q=&(l.elem[i-1]);//指针指向确定插入的位子
for(p=&(l.elem[l.length-1]);p>=q;--p)
*(p+1)=*p;//指针后移
*q=e; //实现元素的插入
++l.length;
return 0;
}
int listdelete_sq(sqlist &l,int i)//删除i位子的元素
{int *p,*q;
if((i<1)||(i>l.length)) return 0;
p=&(l.elem[i-1]);
//e=*p;
cout<<"被删除的值是:"<<*p<>n;
printf("按大小顺序输入n个数:");//cout<<"按大小顺序输入n个数:";
if(n<0||n>l.listsize ) return 0;
for(int i=0;i>l.elem [i];
l.length ++;//表长度
}
cout<<"这数列的长度:"<>i;
listdelete_sq(la,i);
poplist(la);//我这里是用表la做例子。也可用lb。。。
printf("输出要插入的位子和元素:\n");
scanf("%d%d",&i,&e);//cin>>i>>e;
listinsert_sq(lb,i,e);
poplist(lb);//我这里是用表lb做例子。也可用la。。。
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯