数据结构---树

来源:互联网 发布:立体浮雕软件 编辑:程序博客网 时间:2024/06/10 13:32

一、树详解

  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.二叉树中常见的面试题