挑战程序设计竞赛(算法和数据结构)——10.2完全二叉树的JAVA实现

Posted 小乖乖的臭坏坏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了挑战程序设计竞赛(算法和数据结构)——10.2完全二叉树的JAVA实现相关的知识,希望对你有一定的参考价值。

题目与思路:

import java.io.BufferedInputStream;
import java.util.Scanner;

public class CompleteBinaryTree 
    public static void main(String[] args) 
        Scanner cin = new Scanner(new BufferedInputStream(System.in));
        int n = cin.nextInt();
        int[] A = new int[n+1];
        for (int i=1;i<=n;i++)
            A[i] = cin.nextInt();
        

        for (int i=1;i<=n;i++)
            System.out.print("node " + i + ": key = " + A[i]);
            if(i!=1)
                System.out.print(", parent key = " + A[keyParent(i)]);
            
            if(keyLeft(i)<=n)
                System.out.print(", left key = " + A[keyLeft(i)]);
            
            if(keyRight(i)<=n)
                System.out.print(", right key = " + A[keyRight(i)]);
            
            System.out.println();
        
    

    public static int keyParent(int i)return i/2;
    public static int keyLeft(int i)return 2*i;
    public static int keyRight(int i)return 2*i+1;


输入:

5
7 8 1 2 3

输出:

node 1: key = 7, left key = 8, right key = 1
node 2: key = 8, parent key = 7, left key = 2, right key = 3
node 3: key = 1, parent key = 7
node 4: key = 2, parent key = 8
node 5: key = 3, parent key = 8

以上是关于挑战程序设计竞赛(算法和数据结构)——10.2完全二叉树的JAVA实现的主要内容,如果未能解决你的问题,请参考以下文章

挑战程序设计竞赛(算法和数据结构)——分割(下)&快速排序的JAVA实现

挑战程序设计竞赛(算法和数据结构)——19.2九宫格拼图问题的JAVA实现

挑战程序设计竞赛(算法和数据结构)——7.1归并排序JAVA实现

挑战程序设计竞赛(算法和数据结构)——16.13线段相交问题(曼哈顿算法)的JAVA实现

挑战程序设计竞赛(算法和数据结构)——3.6希尔排序的JAVA实现

挑战程序设计竞赛(算法和数据结构)——3.6希尔排序的JAVA实现