挑战程序设计竞赛(算法和数据结构)——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实现