编程实现,输入若干个相同类型的有序数存放杂数组中,按以下3种方式插入一个数到有序的数列中,要求插入后数列仍为有效数列:(1)在最前面插入;(2)在中间插入;(3)在最后面插入‘
- 提问者网友:無理詩人
- 2021-06-04 08:54
- 五星知识达人网友:渡鹤影
- 2021-06-04 10:20
不知道我不是最近很堕落,
好久不写代码了,
给你写一段代码吧,
手痒了;
编译器用VC6;
////////////////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////////////
#include<iostream.h>
#define length 5 //数组长度;
void main()
{
int a[length];
cout<<"请输入数字!"<<endl;
for(int i=0;i<lenght;i++)
{
cin>>a[i];
}
//以上的数为基本有序的数(这儿假设为递增);如果输入的是无序自已定义个函数排列一下吧;
//以下开始插入
cout<<"请输入要插入的数"<<endl;
int data;
cin>>data;
}
int b[lenght+1]=new int(lenght+1);//新建一个数组;
////以下为最前插入,你的三个要求无非是在寻找方向不同而已,想法都一样,以后两个略;
int j;
for(j=0;j<lenght;j++)
{
if(data<a[j])
{
b[j]=data;
while(j<lenght)
{
b[j+1]=a[j];
j++;
}
}
else
{
b[j]=a[j];
}
{
}
- 1楼网友:玩家
- 2021-06-04 10:35
import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Scanner;
public class Test {
private int a; private int c; List list=new LinkedList();; public void getNum(){ //输入数据 Scanner scan=new Scanner(System.in); System.out.println("输入数据"); for(int i=0;i<10;i++){ int k=scan.nextInt(); list.add(k); } Collections.sort(list); getUtil(); } public void getUtil(){ //选择插入的地方 Scanner scan=new Scanner(System.in); System.out.println("1:在前面插入,2:中间插入,3:最后插入"); c=scan.nextInt(); switch(c){ case 1: System.out.println("请输入数字"); int d=0; d=scan.nextInt(); list.add(0, d); for(int i=0;i<list.size();i++){ System.out.println(list.get(i)); } break; case 2: System.out.println("请输入数字"); int g=0; g=scan.nextInt(); int k=list.size()/2;//获得集合长度 list.add(k, g); for(int i=0;i<list.size();i++){ System.out.println(list.get(i)); } break; case 3: System.out.println("请输入数字"); int l=0; l=scan.nextInt(); int o=list.size();//获得集合长度 list.add(o, l); for(int i=0;i<list.size();i++){ System.out.println(list.get(i)); } break; }
} public static void main(String[] args) { new Test().getNum(); }
}