美文网首页
二叉树的排序和遍历

二叉树的排序和遍历

作者: 勇者与王者 | 来源:发表于2019-10-08 14:11 被阅读0次
package binaryTree;

import java.util.ArrayList;
import java.util.List;

/**
* 
* @author q06285:
* @version 创建时间:2019年10月8日 上午10:37:41
* 
* 假设通过二叉树对如下10个随机数进行排序
* 67,7,30,73,10,0,78,81,10,74
* 排序的第一个步骤是把数据插入到该二叉树中
* 插入基本逻辑是,小、相同的放左边,大的放右边
* 
* 
*/
public class Node {

    public Node leftNode;
    
    public Node rightNode;
    
    public Object value;
    
    public void add(Object v) {
        if (null == value) {
            value = v;
        } else {
            if ( (Integer)v - (Integer)value <= 0) {
                if ( null == leftNode) {
                    leftNode = new Node();
                }
                leftNode.add(v);
            }
            else {
                if (null == rightNode) {
                    rightNode = new Node();
                }
                rightNode.add(v);
            }
            
        }
        
    }
    
    public static void main(String[] args) {
        int randoms[] = new int[] {67, 7, 30, 73, 10, 0, 78, 81, 10, 74};
        
        Node roots = new Node();
        for (int number : randoms) {
            roots.add(number);
        }
        
        System.out.println(roots.values());
    }
    
    public List<Object> values(){
        List<Object> values = new ArrayList<>();
        
        if (null != leftNode) {
            values.addAll(leftNode.values());
        }
        
        values.add(value);
        
        if (null != rightNode) {
            values.addAll(rightNode.values());
        }
        return values;
    }

}

相关文章

  • 面试题

    面试题 二叉树 非递归实现二叉树遍历 节点: 前序遍历 中序遍历 后序遍历 排序 快速排序 其他问题 算法题 给一...

  • 2018-08-04

    排序二叉树的遍历 所谓排序二叉树是指树中的每个节点大于其左子节点,小于其左子节点。排序二叉树的遍历大体上可以分为三...

  • 浅谈红黑树

    二叉树排序 二叉树排序主要包括,节点信息的设计、节点的插入和树的中序遍历 节点信息(包括左右孩子和节点value)...

  • Binary Tree - Swift 相关实现

    原文参考 节点 翻转二叉树 前序遍历 中序遍历 后序遍历 层次遍历/广度优先遍历 深度优先遍历 判断二叉排序树

  • 【算法笔记】排序二叉树(Binary Search Tree)的

    简单的写了一下排序二叉树(Binary Search Tree)的查询,删除。加上树的遍历前序遍历,中序遍历,后序...

  • 排序-二叉树

    二叉树的排序可以分为中序排序 左 中 右前序排序 中 左 右后序排序 左 右 中 中序排序能够快速遍历出...

  • swift: 层序遍历翻转二叉树和快速排序

    Talking is cheap, show the codes. 层序遍历进行翻转二叉树 快速排序

  • [数据结构]排序二叉树 解题报告

    Problem Description 建立并中序遍历一个排序二叉树 排序二叉树是指左子树的所有节点的值均小于它根...

  • 华东师范2019数据结构考题

    1,非递归二叉树遍历32分 2,拓扑排序环路判断32分

  • 二叉树的遍历

    二叉树的遍历 二叉树遍历 分为前序遍历、中序遍历和后序遍历。 前序遍历 (DLR) 先访问根节点,然后前序遍历左子...

网友评论

      本文标题:二叉树的排序和遍历

      本文链接:https://www.haomeiwen.com/subject/mbebpctx.html