题目(微软):
输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。
例如输入
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; }
}
}
分享到:
相关推荐
二元查找树(Binary Search Tree,BST),也称为二叉搜索树,是一种特殊的二叉树数据结构,其中每个节点都满足以下特性: 1. 左子树上的所有节点的值都小于当前节点的值。 2. 右子树上的所有节点的值都大于当前节点...
二元树的基本概念基于树形结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。这种结构使得二元树非常适合用于实现搜索、排序和组织数据。 在二元树中,有几种特殊类型的树,包括完全二元树、满二元树和...
二元树,也称为二叉树,是计算机科学中一种基本的数据结构,它是由节点(或称为元素)组成,每个节点最多有两个子节点,通常称为左子节点和右子节点。这种数据结构在编程中有着广泛的应用,如搜索、排序、表达式求解...
假设自上而下按层次 自左至右输入每个结点的一个三元组 N P L R 其 中N 为本结点的元素 P 为其父结点 L 指示N 为P 的左孩子 R 指示N 为P 的右孩子 试写一个建立二元树在内存的双链表示算法 并实现先根 中根 后 根...
在每一层中,访问顺序是按照从左到右的顺序进行。在遍历过程中,当处理完一层的所有节点后,再将下一层的节点按照左右子节点的顺序入队,等待后续访问。 **系统分析:** 2.1 **可行性研究** 实现层次遍历的可行性...
二元查找树(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, P, L/R)。其中N为本结点的元素,P为其父结点,L指示N为P 的左孩子,R指示N为P的右孩子。试写一个建立二元树在内存的双链表示算法,并实现先根、中根、后根...
综上所述,"决策树二元分类"是一个入门级的数据分析项目,涵盖了决策树的基本原理、构建过程、二分类应用及Python实现,对于初学者来说,这是一个很好的起点,有助于理解机器学习中的分类算法。
二叉树是树的一个特例,每个结点最多有两个子结点,分别称为左子结点和右子结点。二叉树通常有两种存储方式:顺序存储结构(如数组)和链式存储结构(如指针链接)。二叉树的遍历有四种主要方法:前序遍历(根-左-右...
输入一颗二元树,从上往下按层打印树的每个节点,同一层按照从左往右的顺序打印。 输入样例: 8 / / 6 10 / / / / 5 7 9 11 输出样例: 代码如下:8 6 10 5 7 9 11 思路分析: 把一颗二叉树抽象成三个节点...
B-Tree 是一类满足特殊条件...每个结点中的数据按升序排列V1 (k ),每个数据Vi 都存在一棵左子树和一棵右子树,如果左子树不空的话,该子树中所有结点的值都小于Vi,如果右子树不空的话,该子树中所有结点的值都大于Vi。
二叉搜索树(Binary Search Tree,BST)是一种特殊的数据结构,每个节点包含一个键(key)、一个关联值、一个指向左子树的引用和一个指向右子树的引用。在二叉搜索树中,对于任意节点,其左子树中所有节点的键均小于...
二叉树是一种特殊的树形结构,每个结点最多只能有两个孩子结点,即左孩子和右孩子。二叉树的定义是一棵二叉树 T 可定义为一个四元组 T = (V, E, L, R),其中 V 是由 n (n>0) 个元素组成的有限非空集合,称为顶点...