学习笔记-二叉树
来源:互联网 发布:的士打车软件 编辑:程序博客网 时间:2024/05/22 13:23
二叉树主要输出是关于他的四种遍历(前,中,后,层次)
根据java数据结构,先建立一个节点类BinaryNode
代码参考《java数据结构》以及同学
class BinaryNode {int data;//数据项BinaryNode left, right;左右节点public BinaryNode(int data, BinaryNode left, BinaryNode right) {super();this.data = data;this.left = left;this.right = right;}public BinaryNode(int data) {this(data, null, null);}}
然后再有一个二叉树类来实现方法
class BinaryTree {BinaryNode root;//根public BinaryTree(BinaryNode root) {super();this.root = root;}public BinaryTree() {this.root = null;}public void insert (int t){insert(this.root,t);}public void insert(BinaryNode p,int t){//以二叉搜索树为例if(this.root==null){this.root=new BinaryNode(t);}else if(p.data<t){if(p.right==null){p.right=new BinaryNode(t);}else{insert(p.right,t);}}else{if(p.left == null){p.left=new BinaryNode(t);}else{insert(p.left,t);//左的左}}}public String levelOrder(int n){String str = "";Queue<BinaryNode> q = new LinkedList<BinaryNode>();if(this.root != null){q.add(this.root);}while(!q.isEmpty()){BinaryNode t = q.poll();str += t.data+" ";if (t.left != null) { q.add(t.left); } if (t.right != null) { q.add(t.right); } }return str;}}主方法
import java.util.*;public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);while (cin.hasNext()) {int n = cin.nextInt();BinaryTree tree = new BinaryTree();for(int i=0;i<n;i++){tree.insert(cin.nextInt());}String str = tree.levleOrder(n);System.out.println(str.substring(0, str.length()-1));}cin.close();}}
0 0
- 二叉树学习笔记
- 二叉树学习笔记
- 二叉树学习笔记
- 二叉树学习笔记
- 二叉树学习笔记
- 学习笔记-二叉树
- 学习笔记 二叉树
- 数据结构学习笔记:二叉树
- 数据结构学习笔记 --- 二叉树
- 【学习笔记】关于二叉树
- 数据结构学习笔记:二叉树
- 二叉树学习笔记-概述
- 二叉树学习笔记-实现
- 二叉树基本概念学习笔记
- 数据结构学习笔记 --- 二叉树
- 学习笔记,关于二叉树。
- 数据结构学习笔记:二叉树
- 树与二叉树的学习笔记
- C/C++ typedef用法
- 1001. 害死人不偿命的(3n+1)猜想 (15)(java实现)
- Linux shell 之 提取文件名和目录名的一些方法
- OkHttp与Reftrofit2
- Xshell 5如何连接本地虚拟机
- 学习笔记-二叉树
- 273. Integer to English Words
- Epoll模型详解
- activiti 候选人:(候选组)流程设计:
- 10分钟学会Markdown常用语法
- shader学习基础之九详解uv坐标与加入数学算法控制uv坐标的原理
- CSS3--Flex布局
- 206 Reverse Linked List
- 七月机器学习之凸优化初步4