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);
	}
}


【Java数据结构】二叉树

核心:树中每个节点最多只能有两个子节点(t>=0&&t 下面实现的是一个二叉排序树(左孩子小于父节点,右孩子大于父节点) 1.插入节点 核心思想: (1)如果不存在节点,则直接插入。 (2)从根节...
  • u013517797
  • u013517797
  • 2016年01月09日 13:58
  • 831

数据结构课程设计报告 二叉树的应用

题  目:    二叉树的应用  西 安 邮 电 大 学               (计算机学院) 一. 设计目的 树结构在客观世界中广泛存在, 如人类社会的族谱和各种社会组织...
  • m0_37338590
  • m0_37338590
  • 2017年03月07日 21:01
  • 699

数据结构-二叉树和二叉查找树

先按树-二叉树-二叉查找树的顺序解释会比较清楚。 一,树 树(Tree)是n(n≥0)个结点的有限集。在任意一棵非空树中: (1)有且仅有一个特定的被称为根(Root)的结点; (2)当n>1...
  • tuke_tuke
  • tuke_tuke
  • 2015年12月20日 17:44
  • 2151

数据结构课程设计 表达式类型的实现

题目:写一个程序,实现基于二叉树表示的算术表达式Expression的操作。 头文件:应保存为“Expression.h” #include #include #include #includ...
  • HugoChouGT
  • HugoChouGT
  • 2011年08月21日 16:08
  • 2906

数据结构——排序/搜索二叉树(递归)的基本操作实现

下面是用C++语言递归的实现的二叉搜索树,并有搜索,插入,删除,寻找最大最小节点的操作。 非递归实现请看我的上一篇博客 "BSTreeR.h" #pragma once template clas...
  • poison_biti
  • poison_biti
  • 2016年07月03日 11:36
  • 451

数据结构实践——二叉树排序树中查找的路径

本文是[数据结构基础系列(8):查找]中的实践项目参考。【项目 - 二叉树排序树中查找的路径】 设计一个算法,输出在二叉排序中查找时查找某个关键字经过的路径。[参考解答] 专为本项目设计的算法体现...
  • sxhelijian
  • sxhelijian
  • 2015年11月23日 14:43
  • 2711

java数据结构与算法之树基本概念及二叉树(BinaryTree)的设计与实现

【版权申明】未经博主同意,不允许转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/53727333 出自...
  • javazejian
  • javazejian
  • 2016年12月22日 15:19
  • 12923

数据结构与算法JavaScript - 二叉树和二叉查找树

树是计算机科学中常用到的一种
  • HobbitHero
  • HobbitHero
  • 2016年07月28日 18:01
  • 1275

数据结构--二叉树--双亲、孩子和兄弟节点的查询(顺序结构)

#include /* EOF(=^Z或F6),NULL */ #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 typ...
  • wangrunmin
  • wangrunmin
  • 2012年08月10日 19:21
  • 5077

重温数据结构:二叉树的常见方法及三种遍历方式 Java 实现

读完本文你将了解到: 什么是二叉树 Binary Tree 两种特殊的二叉树 满二叉树 完全二叉树 满二叉树 和 完全二叉树 的对比图 二叉树的实现 用 递归节点实现法左右链表示法 表示一个二叉树节点...
  • u011240877
  • u011240877
  • 2016年11月17日 02:03
  • 7678
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java数据结构课程设计 二叉树查找
举报原因:
原因补充:

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