`
javatome
  • 浏览: 837412 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。

 
阅读更多

题目(微软):
输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。
例如输入
8
/ /
6 10
/ / / /
5 7 9 11

输出8 6 10 5 7 9 11。

广度优先遍历

C# codes as below:

using System;

using System.Collections.Generic;

namespace ConsoleApp

{

class RunClass

{

static void Main()

{

Node<int> i1 = new Node<int>() { Value = 4 };

Node<int> i2 = new Node<int>() { Value = 8 };

Node<int> i3 = new Node<int>() { Value = 12};

Node<int> i4 = new Node<int>() { Value = 16};

Node<int> i5 = new Node<int>() { Value = 6, Left = i1, Right = i2 };

Node<int> i6 = new Node<int>() { Value = 14, Left = i3, Right = i4 };

Node<int> i7 = new Node<int>() { Value = 10, Left = i5, Right = i6 };

Tree<int> tree = new Tree<int> { Root = i7 };

new Helper().PrintTree<int>(tree);

Console.ReadLine();

}

}

class Helper

{

public void PrintTree<T>(Tree<T> tree)

{

Node<T> root=tree.Root;

Queue<Node<T>> queue = new Queue<Node<T>>();

queue.Enqueue(root);

while (queue.Count != 0)

{

Node<T> node = queue.Dequeue();

Console.WriteLine(node.Value);

if (node.Left != null)

queue.Enqueue(node.Left);

if (node.Right != null)

queue.Enqueue(node.Right);

}

}

}

class Tree<T>

{

public Node<T> Root { get; set; }

}

class Node<T>

{

public Node<T> Left { get; set; }

public Node<T> Right { get; set; }

public T Value { get; set; }

}

}

分享到:
评论

相关推荐

    C语言实现输入一颗二元查找树并将该树转换为它的镜像

    二元查找树(Binary Search Tree,BST),也称为二叉搜索树,是一种特殊的二叉树数据结构,其中每个节点都满足以下特性: 1. 左子树上的所有节点的值都小于当前节点的值。 2. 右子树上的所有节点的值都大于当前节点...

    二元树及其应用

    二元树的基本概念基于树形结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。这种结构使得二元树非常适合用于实现搜索、排序和组织数据。 在二元树中,有几种特殊类型的树,包括完全二元树、满二元树和...

    我的二元树代码

    二元树,也称为二叉树,是计算机科学中一种基本的数据结构,它是由节点(或称为元素)组成,每个节点最多有两个子节点,通常称为左子节点和右子节点。这种数据结构在编程中有着广泛的应用,如搜索、排序、表达式求解...

    树及其应用

    假设自上而下按层次 自左至右输入每个结点的一个三元组 N P L R 其 中N 为本结点的元素 P 为其父结点 L 指示N 为P 的左孩子 R 指示N 为P 的右孩子 试写一个建立二元树在内存的双链表示算法 并实现先根 中根 后 根...

    树或二元树的层次遍历

    在每一层中,访问顺序是按照从左到右的顺序进行。在遍历过程中,当处理完一层的所有节点后,再将下一层的节点按照左右子节点的顺序入队,等待后续访问。 **系统分析:** 2.1 **可行性研究** 实现层次遍历的可行性...

    二元查找树转变为双向链表C语言实现

    二元查找树(Binary Search Tree,BST)是一种特殊的数据结构,它的每个节点包含一个键、一个关联值、一个指向左子树的指针和一个指向右子树的指针。在二元查找树中,每个节点的键大于其左子树中的任何节点的键,且...

    微软面试题——二元查找树转变成排序的双向链表

    二元查找树转变成排序...输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 / \ / \ 4 8 12 16 转换成双向链表 4=6=8=10=12=14=16。

    对于含有n个内节点的二元树,证明E=I+2n。其中E、I分别为外部和内部路径长度。

    ### 对于含有n个内节点的二元树,证明E=I+2n。其中E、I分别为外部和外部路径长度。 #### 背景知识 在计算机科学中,二叉树是一种重要的数据结构,它由节点组成,每个节点最多有两个子节点。二叉树在算法设计和分析...

    数据结构与算法-哈工大 (4).pdf

    满二元树是在每一层都拥有最大数量结点的二元树,而完全二元树是除了最后一层可能不满之外,其他层都是满的,且最后一层的所有叶结点都靠左排列。 理解并熟练掌握树和二元树的数据结构及其算法是至关重要的,它们在...

    二元树在内存的双链表示

    假设自上而下按层次,自左至右输入每个结点的一个三元组(N, P, L/R)。其中N为本结点的元素,P为其父结点,L指示N为P 的左孩子,R指示N为P的右孩子。试写一个建立二元树在内存的双链表示算法,并实现先根、中根、后根...

    决策树二元分类

    综上所述,"决策树二元分类"是一个入门级的数据分析项目,涵盖了决策树的基本原理、构建过程、二分类应用及Python实现,对于初学者来说,这是一个很好的起点,有助于理解机器学习中的分类算法。

    第三章:树-2021-11

    二叉树是树的一个特例,每个结点最多有两个子结点,分别称为左子结点和右子结点。二叉树通常有两种存储方式:顺序存储结构(如数组)和链式存储结构(如指针链接)。二叉树的遍历有四种主要方法:前序遍历(根-左-右...

    一波二叉树遍历问题的C++解答实例分享

     输入一颗二元树,从上往下按层打印树的每个节点,同一层按照从左往右的顺序打印。 输入样例: 8 / / 6 10 / / / / 5 7 9 11 输出样例: 代码如下:8 6 10 5 7 9 11 思路分析:  把一颗二叉树抽象成三个节点...

    数据结构课程设计- 基于C++的B树实现(源码+报告).zip

    B-Tree 是一类满足特殊条件...每个结点中的数据按升序排列V1 (k ),每个数据Vi 都存在一棵左子树和一棵右子树,如果左子树不空的话,该子树中所有结点的值都小于Vi,如果右子树不空的话,该子树中所有结点的值都大于Vi。

    山东大学数据结构课程设计—AVL搜索树

    二叉搜索树(Binary Search Tree,BST)是一种特殊的数据结构,每个节点包含一个键(key)、一个关联值、一个指向左子树的引用和一个指向右子树的引用。在二叉搜索树中,对于任意节点,其左子树中所有节点的键均小于...

    Chapter5 树和二叉树1

    二叉树是一种特殊的树形结构,每个结点最多只能有两个孩子结点,即左孩子和右孩子。二叉树的定义是一棵二叉树 T 可定义为一个四元组 T = (V, E, L, R),其中 V 是由 n (n>0) 个元素组成的有限非空集合,称为顶点...

Global site tag (gtag.js) - Google Analytics