Java数据结构课程设计 二叉树查找

原创 2012年03月22日 21:09:48

题目:在二叉树中查找值为X的结点,试设计打印值为X的结点的所有祖先的算法,假设值为X的结点不多于1个。

import java.util.*;

public class BinTree {
	private List<Integer> binTree;

	public static void main(String[] args) {
		Scanner reader = new Scanner(System.in);
		int node;
		System.out.println("Build binary tree.");
		System.out.println("Enter number of tree node: ");
		int n = reader.nextInt();
		BinTree bt = new BinTree(n);
		System.out.println("Enter the " + n + " tree nodes");
		for (int i = 0; i < n; i++) {
			node = reader.nextInt();
			bt.addNode(node);
		}
		System.out.println("Enter the vaule X to find:");
		int target = reader.nextInt();
		if (bt.find(target)) {
			bt.printParentsOf(target);
		}
		else
			System.out.println("Can't find " + target);
	}

	public boolean find(int t) {
		return binTree.contains(t);
	}

	public void printParentsOf(int target) {
		int index = binTree.indexOf(target);
		if (index != 1) 
			printParentsOf(binTree.get(index/2));
		System.out.println(binTree.get(index));
	}

	public BinTree(int n) {
		binTree = new ArrayList<Integer>(n);
		binTree.add(0, -1); // 占位
	}

	public void addNode(int node) {
		binTree.add(node);
	}
}


相关文章推荐

数据结构课程设计-二叉树操作系统

此乃我的数据结构课程设计“二叉树操作系统”-二叉树基本操作头文件部分,具体请结合其他部分。...

数据结构课程设计题目四_二叉树

本文出自:http://blog.csdn.net/svitter 题目4:二叉树 给出一颗无线的二叉树。树的每一个结点用一整数对标识。二叉树构造如下 树根被标识为(1, 1); 如果一个结点被标...
  • svitter
  • svitter
  • 2014年06月08日 14:12
  • 873

数据结构课程设计--哈夫曼树编

#include #include #include #include #include #define MAXV 100 //#define MAXVALUE 10000 t...

数据结构课程设计二叉树的宽度

  • 2012年06月20日 13:57
  • 143KB
  • 下载

数据结构_课程设计——最小生成树:室内布线

数据结构_课程设计——最小生成树:室内布线
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java数据结构课程设计 二叉树查找
举报原因:
原因补充:

(最多只允许输入30个字)