数据结构的实验算法

来源:百度知道 编辑:UC知道 时间:2024/05/07 19:41:59
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的结果

插入两次后就有11个了,怎么listsize会是10呢...晕.
题目没搞错吧?

#include "stdio.h"

int num[11]={12,13,17,21,24,28,30,42,77};
int n;
const int listsize=11;

void insert(int number){
int i;
for(i=0;i<n;++i){
if(number<num[i]){
break;
}
}
int j;
for(j=n;j>i;--j){
num[j]=num[j-1];
}
num[i]=number;
++n;
}

void del(int number){
int i;
for(i=0;i<n;++i){
if(num[i]==number){
break;
}
}
for(;i<n-1;++i){
num[i]=num[i+1];
}
--n;
}

void dis(){
int i;
for(i=0;i<n;++i){
printf("%d ",num[i]);
}
printf("\n");
}

int main(){
n=9;
dis();
insert(25);
dis();
insert(58);
dis();
del(12);
dis();
del(24);
dis();
return 0;
}