数据结构-01
来源:互联网 发布:阿里云更换系统 编辑:程序博客网 时间:2024/06/05 18:47
输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。
例如输入:
算法流程:
个人算法思想:
定义一个队列 queue
1.根节点先入队列
2.拿出队列中第一个元素寻找其左右孩子
3.如果有入队,再拿下一个,直到拿完第一个孩子入队之前的所有元素,并以此进行循环直至队列中元素为空
核心代码:
public void paintTree(){ //采用Java自带类LinkedList实现队列操作 LinkedList<Node> queue=new LinkedList<Node>(); //定义临时结点先存放根节点的值 Node temp = tree.root; //将根节点入队列 queue.add(temp); //定义变量level 用来记录每一层次中树叶的个数 int level = queue.size(); //当队列中某一层的树叶为零时 代表已经到达树的最底层遍历结束 while (level!= 0){ //按每一层的树叶的数量 即level的值 来遍历这些树叶 for (int i = 0; i < level; i++){ //取出队列中的一个元素 temp = queue.poll(); //输出该节点 temp.paintNode(); //如果取出的树叶元素存在左孩子 if (temp.leftChild != null){ //左孩子入队列 queue.add(temp.leftChild); } //如果取出的树叶元素存在右孩子 if (temp.rightChild != null){ //右孩子入队列 queue.add(temp.rightChild); } }//for循环结束 //在入队出队之后重新获取队列的长度 level = queue.size(); System.out.println();//用于换行 }//while循环结束}//paintTree函数结束
每天学习一点点,未来爱你多一点
阅读全文
0 0
- 数据结构-01
- 数据结构_数据结构与算法01
- 01数据结构概述(郝斌数据结构)
- 数据结构01_数据结构基本知识介绍
- 【数据结构专题-01】数据结构基本介绍
- 【大话数据结构】01 数据结构的绪论 笔记
- 数据结构-01-链表数据结构之单链表
- 01_Java 数据结构
- 数据结构01--栈
- 数据结构--01背包问题
- 数据结构和算法-01
- 数据结构01 绪论
- 数据结构01绪论
- 数据结构01--概要
- 基础数据结构01:链表
- 数据结构基础【01】基本概念
- 数据结构
- 数据结构
- 初始设计模式——单例模式
- C++思维导图
- ZK单机最简配置
- osu
- 使用servlet编程,解决输出到页面的中文显示乱码问题。
- 数据结构-01
- xml的Web服务
- C++开发笔记
- mybatiss学习之路1
- ajax接受servlet传送json数据中文乱码
- PHP之Linux(五) 进程管理与系统命令
- Python自定义大小截屏
- 深度学习模型压缩方法综述(三)
- Java设计模式之工厂模式