Java数据结构系列之——树(6):二叉树的层序遍历

package tree.binarytree;

import java.util.LinkedList;

/**
 * 层序遍历二叉树
 *
 * @author wl
 *
 */
public class PrintFromTopToBotton {
	public static void printfromtoptobotton(BiTreeNode root) {
		if (root == null) {
			return;
		}

		LinkedList<BiTreeNode> queue = new LinkedList<BiTreeNode>();
		queue.addLast(root);

		while (queue.size() != 0) {
			BiTreeNode current = queue.pollFirst();
			System.out.println(current.data);

			if (current.leftNode != null) {
				queue.addLast(current.leftNode);
			}

			if (current.rightNode != null) {
				queue.addLast(current.rightNode);
			}
		}
	}
}

时间: 2024-08-10 23:28:11

Java数据结构系列之——树(6):二叉树的层序遍历的相关文章

Java数据结构系列之——树(5):二叉树的后序遍历的递归与非递归实现

package tree.binarytree; import java.util.Stack; /** * 二叉树后序遍历的递归与非递归实现 * * @author wl * */ public class BitreePostOrder { // 后序遍历的递归实现 public static void biTreePostOrderByRecursion(BiTreeNode root) { if (root == null) { return; } biTreePostOrderByRe

Java数据结构系列之——树(1):二叉树基本概念及特点小结

度的概念:结点拥有的子树数称为结点的度(degree).度为0的结点称为叶结点(leaf)或者终端结点.度不为0的结点称为非终端结点或者分支结点.除根节点以外,分支结点也称为内部结点.树的度是树内部结点的度的最大值. 树的深度或者高度:结点的层次从根开始定义起,根为第一层,根的孩子为第二层.树中结点的最大层次称为树的深度或者高度. 树的表示法:(1)双亲表示法(2)孩子表示法(3)孩子兄弟表示法 二叉树:二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和

Java数据结构系列之——树(2):二叉树的实现及其常用操作

package tree.binarytree; public class BiTreeNode { int data; BiTreeNode leftNode; BiTreeNode rightNode; public BiTreeNode(){ leftNode=null; rightNode=null; } public BiTreeNode(int data,BiTreeNode leftNode,BiTreeNode rightNode){ this.data=data; this.l

Java数据结构系列之——树(4):二叉树的中序遍历的递归与非递归实现

package tree.binarytree; import java.util.Stack; /** * 二叉树的中序遍历:递归与非递归实现 * * @author wl * */ public class BiTreeInOrder { // 中序遍历的递归实现 public static void biTreeInOrderByRecursion(BiTreeNode root) { if (root == null) { return; } biTreeInOrderByRecursi

D&amp;F学数据结构系列——B树(B-树和B+树)介绍

B树 定义:一棵B树T是具有如下性质的有根树: 1)每个节点X有以下域: a)n[x],当前存储在X节点中的关键字数, b)n[x]个关键字本身,以非降序存放,因此key1[x]<=key2[x]<=...<=keyn[x][x], c)leaf[x],是一个布尔值,如果x是叶子的话,则它为TRUE,如果x为一个内节点,则为FALSE. 2)每个内节点包含n[x]+1个指向其子女的指针c1[x],c2[x],...,cn[x]+1[x].叶节点没有子女,故它们的ci域无意义. 3)各关键

二叉树的层序遍历、二叉树叶节点输出算法、求二叉树的高度、层序创建一棵二叉树

二叉树的层序遍历 1 void LevelorderTraversal(BinTree BT) 2 { 3 std::queue<BinTree> Queue; 4 BinTree T; 5 if (!BT) 6 return; //若是空树则直接返回 7 Queue.push(BT); 8 while (!Queue.empty()) 9 { 10 T = Queue.front(); 11 Queue.pop(); 12 printf("%c ", T->Data

笔试算法题(37):二叉树的层序遍历 &amp; 最长递增的数字串

出题:要求层序遍历二叉树,从上到下的层次,每一层访问顺序为从左到右,并将节点一次编号,输出如下:如果只要求打印指定的level的节点,应该如何实现. a b  c d  e  f  g h  i  分析: 原始的层序遍历类似于BFS,打印当前访问的节点curNode的序列号,并将其直接子节点放入队列queue中,然后从queue中取出下一个节点,直 到队列为空:此方法仅能按照层序打印所有节点,并不能区分每一层节点的数量:如果需要区分当前层次的节点,和当前层次节点的子节点,可以使用两个队列 que

Leetcode 102. Binary Tree Level Order Traversal(二叉树的层序遍历)

Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). For example: Given binary tree [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 return its level order traversal as: [ [3], [9,20], [15,7] ]

leetcode题解:Tree Level Order Traversal II (二叉树的层序遍历 2)

题目: Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root). For example:Given binary tree {3,9,20,#,#,15,7}, 3 / 9 20 / 15 7 return its bottom-up level order tr