数据结构之二叉树实现
来源:互联网 发布:ucosii官方源码下载 编辑:程序博客网 时间:2024/05/21 09:55
1.二叉树的原理分析
树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构。二叉树(Binary Tree)是每个节点最多有两个子树的有序树。通常子树被称作“左子树”和“右子树”。
二叉树算法的排序规则:
(1)选择第一个元素作为根节点
(2)之后如果元素大于根节点放在右子树,如果元素小于根节点,则放在左子树
(3)最后按照中序遍历的方式进行输出,则可以得到排序的结果(左→根→右)
8、3、10、1、6、14、4、7、13
2.二叉树实现
package com.vince.bt;/** * 二叉树实现 * @author lamp * */public class BinaryTreeDemo {public static void main(String[] args) {BinaryTree bt = new BinaryTree();bt.add(8);bt.add(3);bt.add(10);bt.add(1);bt.add(6);bt.add(14);bt.add(4);bt.add(7);bt.add(13);bt.print();}}
package com.vince.bt;public class BinaryTree {private Node root;//根节点//添加节点,提供给类外部调用public void add(int data){if(root==null){root = new Node(data);}else{root.addNode(data);}}//输出节点,提供给类外部调用public void print(){if(root!=null){root.printNode();}}//节点类class Node{private int data;//当前节点数据private Node left;//左子树private Node right;//右子树public Node(int data){this.data = data;}//添加节点public void addNode(int data){if(this.data>data){if(this.left==null){this.left = new Node(data);}else{this.left.addNode(data);}}else if(this.data<=data){if(this.right==null){this.right = new Node(data);}else{this.right.addNode(data);}}}//输出节点(中序遍历:左根右)public void printNode(){if(this.left!=null){this.left.printNode();}System.out.print(this.data+" ");if(this.right!=null){this.right.printNode();}}}}
0 0
- 数据结构之二叉树实现
- 简单数据结构的实现之二叉树
- 【数据结构】之二叉树的java实现
- 【数据结构】之二叉树的java实现
- 数据结构之二叉树的Java实现
- 【数据结构】之二叉树的java实现
- 动手实现 数据结构 之 “二叉树”
- 简单数据结构之二叉树(C++实现)
- Java实现数据结构之二叉查找树
- 【数据结构】之二叉树的java实现
- 【数据结构】之二叉树的java实现
- 数据结构之---二叉树C实现
- 【数据结构】之二叉树的java实现
- Java数据结构之二叉树的实现
- 数据结构之二叉树的Java实现
- 数据结构之二叉树的递归实现
- 数据结构之二叉树 使用数组实现
- 数据结构之二叉树的实现
- java使用jdbc连接数据库工具类和jdbc连接mysql数据示例
- 希望的小鸟
- xheditor和uploadify存在于同一个页面js冲突的解决办法
- 她从楼上扔鸡蛋
- 数据结构实验,多项式类
- 数据结构之二叉树实现
- 判断php查询出来的mysql结果是否为空
- (转帖)二维数组作为实参时
- CSS定位问题
- poj 2096 Collecting Bugs 概率dp求期望
- sharepoint 2013 元数据导航设置
- 第6届—校赛 小明的骰子
- VC++ 在CXXApp的InitInstance()函数中获取窗口句柄
- 编码转换