数据结构二叉树怎么遍历啊??

作者&投稿:严维 (若有异议请与网页底部的电邮联系)
数据结构 二叉树的遍历~

using System;
using System.Collections.Generic;
using System.Text;namespace structure
{
class Program
{
二叉树结点数据结构的定义#region 二叉树结点数据结构的定义
//二叉树结点数据结构包括数据域,左右结点以及父结点成员;
class nodes
{
T data;
nodes Lnode, Rnode, Pnode;
public T Data
{
set { data = value; }
get { return data; } }
public nodes LNode
{
set { Lnode = value; }
get { return Lnode; }
}
public nodes RNode
{
set { Rnode = value; }
get { return Rnode; } } public nodes PNode
{
set { Pnode = value; }
get { return Pnode; } }
public nodes()
{ }
public nodes(T data)
{
this.data = data;
} }
#endregion 先序编历二叉树#region 先序编历二叉树
static void PreOrder(nodes rootNode)
{
if (rootNode != null)
{
Console.WriteLine(rootNode.Data);
PreOrder(rootNode.LNode);
PreOrder(rootNode.RNode); }
}

#endregion 构造一棵已知的二叉树#region 构造一棵已知的二叉树 static nodes BinTree()
{
nodes[] binTree = new nodes[8];
//创建结点
binTree[0] = new nodes("A");
binTree[1] = new nodes("B");
binTree[2] = new nodes("C");
binTree[3] = new nodes("D");
binTree[4] = new nodes("E");
binTree[5] = new nodes("F");
binTree[6] = new nodes("G");
binTree[7] = new nodes("H");
//使用层次遍历二叉树的思想,构造一个已知的二叉树 binTree[0].LNode = binTree[1];
binTree[0].RNode = binTree[2];
binTree[1].RNode = binTree[3];
binTree[2].LNode = binTree[4];
binTree[2].RNode = binTree[5];
binTree[3].LNode = binTree[6];
binTree[3].RNode = binTree[7];
//返回二叉树的根结点
return binTree[0]; }
#endregion 中序遍历二叉树#region 中序遍历二叉树
static void MidOrder(nodes rootNode)
{
if (rootNode != null)
{
MidOrder(rootNode.LNode);
Console.WriteLine(rootNode.Data);
MidOrder(rootNode.RNode);
}
}
#endregion
后序遍历二叉树#region 后序遍历二叉树
static void AfterOrder(nodes rootNode)
{
if (rootNode != null)
{
AfterOrder(rootNode.LNode);
AfterOrder(rootNode.RNode);
Console.WriteLine(rootNode.Data);
} }
#endregion 层次遍历二叉树#region 层次遍历二叉树
static void LayerOrder(nodes rootNode)
{
nodes[] Nodes = new nodes[20];
int front = -1;
int rear = -1;
if (rootNode != null)
{
rear++;
Nodes[rear] = rootNode; } while (front != rear)
{
front++;
rootNode = Nodes[front];
Console.WriteLine(rootNode.Data);
if (rootNode.LNode != null)
{
rear++;
Nodes[rear] = rootNode.LNode;
}
if (rootNode.RNode != null)
{
rear++;
Nodes[rear] = rootNode.RNode;
}
}
}

#endregion 测试的主方法#region 测试的主方法
static void Main(string[] args)
{
nodes rootNode = BinTree(); Console.WriteLine("先序遍历方法遍历二叉树:");
PreOrder(rootNode);

Console.WriteLine("中序遍历方法遍历二叉树:");
MidOrder(rootNode);

Console.WriteLine("后序遍历方法遍历二叉树:");
AfterOrder(rootNode);
Console.WriteLine("层次遍历方法遍历二叉树:");
LayerOrder(rootNode);
Console.Read(); }
#endregion
}
}

能做出二叉树的都是大神,自己看书吧。



拿先序遍历举例: 先序遍历 是根左右
先遍历根A,然后遍历A的左子树(是左面那一群),然后遍历A的右子树(为空)。
在A的左子树中,先遍历根也就是B,在遍历B的左子树也就是C,在遍历B的右子树,是右边的一群。
在B的右子树中继续…………


二叉树的遍历方式有哪些?
二叉树是一种树形结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的遍历方式有三种:前序遍历、中序遍历和后序遍历。前序遍历的方式是首先访问根节点,然后访问左子树,最后访问右子树。中序遍历的方式是首先访问左子树,接着访问根结点,最后访问右子树。后序遍历的方式是首先访...

【小白学算法】8.二叉树的遍历,前序、中序和后序
前序遍历:先输出父节点,再遍历左子树,然后遍历右子树。中序遍历:先遍历左子树,再输出父节点,然后遍历右子树。后序遍历:先遍历左子树,再遍历右子树,最后输出父节点。如图所示的二叉树,它的前中后输出顺序分别就是:前序:1易大师、2寒冰射手、3盲僧、4盖伦 中序:2寒冰射手、1易大师、3盲...

二叉树遍历演示
以下是一棵二叉树及其经过三种遍历所得到的相应遍历序列二叉树的两种遍历方法:(1)对一棵二叉树中序遍历时,若我们将二叉树严格地按左子树的所有结点位于根结点的左侧,右子树的所有结点位于根右侧的形式绘制,就可以对每个结点做一条垂线,映射到下面的水平线上,由此得到的顺序就是该二叉树的中序遍...

数据结构问题:二叉树遍历
szPostOrder; \/\/后序遍历 BinaryTree< char > * Tree; \/\/存储重建的二叉树 Tree = new BinaryTree< char >( szPostOrder[szPostOrder.length() - 1] );rebuildTree( szInOrder, szPostOrder, Tree->getRoot(), 0, szPostOrder.length() - 1 );Tree->preOrder( Tree->getRoot() ...

数据结构 二叉树的遍历
endregion 先序编历二叉树#region 先序编历二叉树 static void PreOrder<T>(nodes<T> rootNode){ if (rootNode != null){ Console.WriteLine(rootNode.Data);PreOrder<T>(rootNode.LNode);PreOrder<T>(rootNode.RNode); } } endregion 构造一棵已知的二叉树#region 构造一棵已知...

数据结构-树
二叉树是一种特殊的树,每个节点最多只能有两个子节点。其子节点分为左节点和右节点。若该二叉树的所有叶子节点都在最后一层,且节点总数为2^n-1,则称为满二叉树;若叶子节点在最后一层或倒数第二层,且最后一层叶子节点连续,倒数第二层叶子节点连续,则称为完全二叉树。二叉树遍历通常使用前序...

写出二叉树的先序遍历、中序遍历、后序遍历。
那么,我们可以画出这个二叉树的形状:那么,根据后序的遍历规则,我们可以知道,后序遍历顺序为:AEFDHZMG 二叉树的一些介绍:在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆...

数据结构关于遍历二叉树的一道题目急急急在线等啊
题目32要求根据前序遍历和中序遍历序列确定二叉树的结构。前序遍历序列为ABCDEFG,意味着根节点是A。通过观察选项,我们可以发现只有选项C中的根节点是A。然后,我们需要检查每个选项是否满足前序遍历的条件,即根节点在最前面。选项C中,根节点A后面跟着的是D,然后是B,符合前序遍历的特点。因此,选项...

【小白学算法】8.二叉树的遍历,前序、中序和后序
二叉树的遍历,其目的是为了访问树中的每个节点(仅一次)。然而,由于二叉树的结构与线性存储不同,从根节点开始,访问次序可以有多种选择。根据从左到右的习惯,常见的遍历次序包括前序、中序和后序。一、什么是前序、中序、后序 为了便于说明,我们暂且把访问节点当作是打印输出节点信息。那么如何...

二叉树的遍历
.后序遍历得递归算法定义 若二叉树非空 则依次执行如下操作 ( )遍历左子树 ( )遍历右子树 ( )访问根结点 .中序遍历的算法实现 用二叉链表做为存储结构 中序遍历算法可描述为 void InOrder(BinTree T) { \/\/算法里①~⑥是为了说明执行过程加入的标号 ① if(T) { \/\/ 如果二叉树...

临朐县18913019746: 数据结构二叉树怎么遍历啊?? -
坚泪十味: 拿先序遍历举例: 先序遍历 是根左右 先遍历根A,然后遍历A的左子树(是左面那一群),然后遍历A的右子树(为空). 在A的左子树中,先遍历根也就是B,在遍历B的左子树也就是C,在遍历B的右子树,是右边的一群. 在B的右子树中继续…………

临朐县18913019746: 数据结构的二叉树的遍历 -
坚泪十味: 三种遍历:1、先根遍历,根→左→右;2、中根遍历,左→根→右;3、后根遍历,左→右→根; 限于字数,代码发不上来,要代码百度Hi我

临朐县18913019746: 数据结构问题:二叉树遍历 -
坚泪十味: 在后序遍历中找到根节点, 然后在中序遍历中找到左右子树. 将找到的根节点按序写就是前序遍历 后序遍历为DGJHEBIFC (A) 中序遍历为DBGEHJ (A) CIF ->后序遍历为DGJHEB IFC (A) 前序遍历 A (A)的左子树后序遍历 DGJHE (B) (A)的左子树...

临朐县18913019746: 求数据结构中二叉树的遍历的代码,谢谢 -
坚泪十味: 展开全部#include #include #include #include #include #define SIZE 100 using namespace std; typedef struct BiTNode // 定义二叉树节点结构 {char data; // 数据域 struct BiTNode *lchild,*rchild; // 左右孩子指针域 }BiTNode,*BiTree; int visit(...

临朐县18913019746: 二叉树的遍历
坚泪十味: /* 二叉树应用 */ #include "stdio.h"#include "stdlib.h" typedef char ElemType; /* 结点数据的类型 */typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*rchild;}BiTNode; /* 树结点类型 */ /*栈的定义及基本操作*/#define MaxSize 100...

临朐县18913019746: 数据结构 二叉树及其遍历方法 -
坚泪十味: using system; using system.collections.generic; using system.text; namespace structure { class program { 二叉树结点数据结构的定义#region 二叉树结点数据结构的定义//二叉树结点数据结构包括数据域,左右结点以及父结点成员; class nodes...

临朐县18913019746: C语言数据结构“遍历二叉树” -
坚泪十味: [答案]: ////////////////////////////////////////////////// 使用方法: 输入树的节点,输入0结束 1 2 3 4 5 6 7 8 9 0 中序打印 1->2->3->4->5->6->7->8->9-> 后序打印 9->8->7->6->5->4->3->2->1-> 前序打印 1->2->3->4->5->6->7->8->9-> 程序原码: ////////////////////////////////...

临朐县18913019746: 请教一下数据结构二叉树的先序遍历中序遍历后序遍历是怎么弄的 -
坚泪十味: 所谓先序、中序和后序的区别在于访问根的时机,分别是BLR、LBR和LRB,其中B、L、R分别表示根结点、根结点的左子树和根结点的右子树. 以后序遍历为例进行讲解. 后序遍历算法: (1)后序遍历根结点的左子树; (2)后序遍历根结...

临朐县18913019746: 数据结构二叉树的遍历源程序 -
坚泪十味: qianxu(btree t);前序遍历二叉树 zhongxu(btree t); 中序遍历二叉树 houxu(btree t);后序遍历二叉树 void zhongxu(btree t) ()里面的btree t只是一个参数,为了便于理解才写成那样的.你可以用其他字母代替.只要其他地方也保持一致就行了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网