数据结构---树

一、树详解

  1. 数据结构复习之【树】
  2. [Data Structure] 数据结构中各种树(重要!)

二、树的应用

    1.哈夫曼树的应用(石子合并求最小体力消耗)
import java.util.Scanner;

public class HuffmanTree {// 哈夫曼树应用。石子合并求最小体力消耗

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int[] arr = new int[2 * N - 1];
		for (int i = 0; i < N; i++) {
			arr[i] = sc.nextInt();
		}
		int i, j, k1 = -1, k2 = -1, min1, min2, sum = 0;
		for (i = N; i < 2 * N - 1; i++) {
			min1 = min2 = Integer.MAX_VALUE;
			for (j = 0; j < i; j++) {
				if (arr[j] != -1) {
					if (min1 > arr[j]) {
						min2 = min1;min1 = arr[j];
						k2 = k1;k1 = j;
					} else if (min2 > arr[j]) {
						min2 = arr[j];k2 = j;
					}
				}
			}
			arr[i] = min1 + min2;
			sum += arr[i];
			arr[k1] = arr[k2] = -1;
		}
		System.out.println(sum);
	}
}
    2. 二叉树中常见的面试题

你可能感兴趣的:(数据结构---树)