`
dykl001
  • 浏览: 32999 次
  • 性别: Icon_minigender_1
  • 来自: 济南
最近访客 更多访客>>
社区版块
存档分类
最新评论

Binary Tree

阅读更多
code:
/**
 *
 */
package com.algorithms;

/**
 * @author oracle
 *
 */
class BinaryNode {

    private int id;

    private BinaryNode left;

    private BinaryNode right;

    public BinaryNode() {
    }

    // composite模式实现binay tree
    //   
    // public void addNode(BinaryNode node) {
    // if (node.getId() > id) {
    // if (left == null)
    // this.left = node;
    // else
    // this.left.addNode(node);
    // } else {
    // if (right == null)
    // this.right = node;
    // else
    // this.right.addNode(node);
    // }
    //
    // }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public BinaryNode getLeft() {
        return left;
    }

    public void setLeft(BinaryNode left) {
        this.left = left;
    }

    public BinaryNode getRight() {
        return right;
    }

    public void setRight(BinaryNode right) {
        this.right = right;
    }

}

public class BinaryTree {

    // 添加一个节点到二叉树
    // 下面的代码显示一个对象的名字相当于指向一个对象的handle
    public static void addNode(BinaryNode root, BinaryNode node) {
        BinaryNode newnode = root;
        while (newnode != null) {
            if (newnode.getId() < node.getId()) {
                if (newnode.getLeft() == null) {
                    newnode.setLeft(node);
                    newnode = null;
                } else {
                    newnode = newnode.getLeft();
                }
            } else {
                if (newnode.getRight() == null) {
                    newnode.setRight(node);
                    newnode = null;
                } else
                    newnode = newnode.getRight();
            }
        }
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        BinaryNode root = new BinaryNode();

        root.setId(50);

        BinaryNode one = new BinaryNode();

        one.setId(80);

        BinaryTree.addNode(root, one);

        BinaryNode two = new BinaryNode();

        two.setId(40);

        BinaryTree.addNode(root, two);

        BinaryNode three = new BinaryNode();

        three.setId(90);

        BinaryTree.addNode(root, three);
    }

}




Coundy 2007-04-09 03:10 发表评论
分享到:
评论

相关推荐

    C#资源库-binarytree

    标题"C#资源库-binarytree"指的是一个使用C#编程语言实现的二叉树数据结构的代码库。在软件开发中,二叉树是一种基础且重要的数据结构,它由节点构成,每个节点最多有两个子节点,通常称为左子节点和右子节点。这种...

    BinaryTree二叉树实现

    二叉树是一种重要的数据结构,它在计算机科学中扮演着至关重要的角色,特别是在算法和...在二叉树的`BinaryTree`文件中,可能会包含这些操作的具体实现,通过阅读和理解这些代码,可以深入学习和掌握二叉树的相关知识。

    Construct Binary Tree from Preorder and Inorder Traversal

    Construct Binary Tree from Preorder and Inorder Traversal 根据先序,中序建立二叉树

    binarytree.rar

    二叉树是一种在计算机科学中广泛使用的数据结构,它的每个节点最多有两个子节点,通常称为左子节点和右...解压“binarytree.rar”,查看其中的文件,理解数据结构,并根据给定的描述编写代码,以实现二叉树的前序遍历。

    BinaryTree-源码.rar

    【标题】:“BinaryTree-源码.rar”是一个与二叉树相关的源代码压缩包,它可能包含各种二叉树数据结构的实现,如二叉搜索树、平衡二叉树(AVL树或红黑树)或者自定义的二叉树结构。这个压缩包可能为学习数据结构与...

    BinaryTree

    This is a binary tree search implementation.

    binary tree C语言算法

    在计算机科学中,二叉树(Binary Tree)是一种数据结构,每个节点最多有两个子节点,通常分为左子节点和右子节点。这种数据结构广泛应用于各种算法和问题解决,如搜索、排序、文件系统等。在C语言中实现二叉树,我们...

    Python-BinaryTree用于学习二叉树的Python库

    "Python-BinaryTree"是一个专门用于学习和操作二叉树的Python库,它提供了方便的API来创建、遍历和操作二叉树。 1. **二叉树的概念与类型** - 二叉树的基本概念:二叉树的每个节点包含一个值、一个指向左子树的...

    二叉树官方源码BinaryTree_src

    在给定的“二叉树官方源码BinaryTree_src”中,我们可以找到一系列与二叉树相关的源代码文件,这为理解和实现二叉树提供了宝贵的参考资料。 首先,我们看到一个名为"BinaryTreeDemo.clw"的文件,这可能是项目的工作...

    binaryTree

    在"binaryTree"文件中,可能包含了不同类型的二叉树操作的代码示例,如创建、插入、删除、遍历等。 6. **二叉树的复杂度分析**: - 时间复杂度:二叉树的搜索、插入和删除操作的时间复杂度在最坏情况下可能达到O(n...

    心希盼 C++ STL binaryTree

    对于“心希盼 binaryTree.doc”文档,很可能是对这种使用STL实现二叉树的详细教程或示例代码,可能涵盖了如何构建二叉树、执行各种操作以及解决实际问题的实例。通过阅读和理解这份文档,开发者能够深入理解如何结合...

    BinaryTree-BinaryTree

    BinaryTree-BinaryTree

    java-二叉树binaryTree

    在这个"java-二叉树binaryTree"主题中,我们将深入探讨二叉树的实现、操作以及相关的算法。 在Java编程语言中,二叉树可以被表示为一个类,这个类通常包含指向左右子节点的引用,以及可能包含的数据。下面是一个...

    BinaryTreeSort

    BinaryTreeSort的java实现,简单的二叉树排序

    Simple Binary Tree Class.zip_binary tree_tree

    在IT领域,二叉树(Binary Tree)是一种基础的数据结构,它由节点构成,每个节点最多有两个子节点,通常称为左子节点和右子节点。这个压缩包"Simple Binary Tree Class.zip"包含了实现简单二叉树类的相关文件,包括...

    BinaryTree.cpp

    C++实现 操作函数包括先序、中序、后序遍历,求深度,深度、广度遍历 构建二叉树

    BinaryTree_java_

    本文将深入探讨如何用Java语言实现数据库中的二叉树查找,以"BinaryTree.java"为例,帮助你理解相关知识。 二叉树是由节点构成的数据结构,每个节点包含一个值以及最多两个子节点,分别称为左子节点和右子节点。...

    二叉树详解 binary tree

    二叉树(Binary Tree)是一种常见的数据结构,由一系列节点组成,每个节点包含左指针、右指针以及数据元素。在二叉树中,“根”指针指向树的最顶层节点,而左、右指针则递归地指向更小的“子树”。一个空指针代表没有...

    BinaryTree.zip

    在本项目"BinaryTree.zip"中,它通过Microsoft Foundation Classes (MFC)库实现了二叉树的可视化,使学习者能够直观地理解和操作二叉树。 MFC是微软为Windows应用程序开发提供的一套C++类库,它封装了Windows API,...

    BinaryTree.h

    有序二叉树创建 有序二叉树查找 二叉树遍历 有序二叉树删除 类模版实现的有序二叉树

Global site tag (gtag.js) - Google Analytics