6-3 顺序表,最大元素后插入(Java语言描述)

编写算法:有一个非空整数顺序表L,其中元素值可能重复出现,设计一个算法,在最后一个最大值元素之后插入一个值为x的元素。

函数接口定义:

方法接口:
public void InsAfterOfMax (int x)

参数 x 表示要插入的元素。

裁判测试程序样例:

import java.util.Scanner;

class SqList {
    int[] listElem = new int[100];
    int curLen;
    
// 创建n个元素构造的顺序表
    public SqList(int[] data) 
    {
        if(data.length >= listElem.length) {
            listElem = new int[data.length+1];
        }
            
        for (int i = 0; i < data.length; i++) {
            listElem[i] = data[i];
        }
        curLen = data.length;
    }

    // 输出所有元素
    public void display() {
        int i;
        for (i = 0; i < curLen; i++) {
            System.out.print(listElem[i] + " ");
        }
    }

/* 请在这里填写答案 */

}

public class Main {

    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int k = sc.nextInt();
        int[] data = new int[k];
        for (int i = 0; i < k; i++)
            data[i] = sc.nextInt();
        SqList L = new SqList(data);
        int e = sc.nextInt();
        L.InsAfterOfMax(e);
        L.display();
        sc.close();
    }
}

输入样例:

输入两行,第一行由n+1个整数组成,第1个数表示线性表的元素个数,紧接着n个整数 表示 线性表元素,第二行有1个整数,表示要插入的元素。例如:

5  1 3 7 5 2
4

输出样例:

输出结果只有一行,是插入后的线性表的所有元素。

1 3 7 4 5 2 

输入样例:

5 1 3 7 7 5
4

输出样例:

1 3 7 7 4 5 

 答案:

public void InsAfterOfMax (int x){
    int temp;
    int max=0;
    for(int i=0;i<curLen;i++)
        if(listElem[i]>=listElem[max])
            max=i;
    curLen++;
    for(int i=curLen-1;i>max+1;i--)
        listElem[i] = listElem[i-1];
    listElem[max+1] = x;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值