26847: 二叉树的遍历

原创 2015年07月10日 09:46:02

题目描述
建立二叉树,然后实现:输出先序遍历、中序遍历、后序遍历的结果。
输入
第一行:结点个数n。
以下行:每行3个数,第一个是父亲,后两个依次为左右孩子,0表示空。
输出
输出:根、先中后序遍历结果。
样例输入

8
1 2 4
2 0 0
4 8 0
3 1 5
5 6 0
6 0 7
8 0 0
7 0 0


样例输出

3
3 1 2 4 8 5 6 7 
2 1 8 4 3 6 7 5 
2 8 4 1 7 6 5 3 


program p26847;
type
  treetype=record
       father:integer;
       lch,rch:integer;
   end;
var
  tree:array[1..200] of treetype;
  n,m,t:integer;
  procedure init;
    var f,l,r,i:integer;
    begin
       readln(n);
      for i:=1 to n do
        begin
          readln(f,l,r); tree[f].lch:=l; tree[f].rch:=r;
          if l<>0 then tree[l].father:=f;
          if r<>0 then tree[r].father:=f;
        end;
    end;
 function root:integer;
    var i:integer;
    begin
      for i:=1 to n do
        if tree[i].father=0 then
          begin
            root:=i;
            exit;
          end;
    end;
procedure preorder(t:integer);
    begin
      if t<>0 then
        begin
          write(t,' ');
          preorder(tree[t].lch);
          preorder(tree[t].rch);
        end;
    end;
  procedure inorder(t:integer);
    begin
      if t<>0 then
        begin
          inorder(tree[t].lch);
          write(t,' ');
          inorder(tree[t].rch);
        end;
    end;
procedure sucorder(t:integer);
    begin
      if t<>0 then
        begin
          sucorder(tree[t].lch);
          sucorder(tree[t].rch);
          write(t,' ');
        end;
    end;
begin
  init;
  t:=root;
  writeln(t);
  preorder(t);writeln;
  inorder(root);writeln;
  sucorder(t);
end.

版权声明:本文为博主原创文章,未经博主允许不得转载。

PTA 4-3 二叉树的遍历

//左根右 void InorderTraversal( BinTree BT ) { if(BT) { InorderTraversal(BT->Left); ...
  • KEYboarderQQ
  • KEYboarderQQ
  • 2016年11月14日 22:03
  • 621

【面试题之算法部分】二叉树的遍历

前序遍历 中序遍历 后序遍历
  • YoungLeoo
  • YoungLeoo
  • 2015年08月24日 15:45
  • 1462

二叉树遍历解析

1 / \ 2 3 / \ / \ 4 5 6 ...
  • u014805066
  • u014805066
  • 2016年01月30日 13:58
  • 434

6-2 二叉树的遍历 (二叉树的四种遍历方法)

6-2 二叉树的遍历(25 分) 本题要求给定二叉树的4种遍历。 函数接口定义: void InorderTraversal( BinTree BT ); void Preorder...
  • LMengi000
  • LMengi000
  • 2017年12月08日 17:05
  • 182

C语言数据结构——遍历二叉树

1、二叉树的遍历是指从根节点出发,按照某种次序依次访问二叉树中的所有结点,使得每个节点被访问依次且仅被访问一次。2、前序遍历: 规则是若二叉树为空,则空操作返回,否则先访问根节点,然...
  • sunshine_rebrith
  • sunshine_rebrith
  • 2017年06月04日 10:53
  • 322

快速写出二叉树的遍历顺序

word和ppt下载:快速写出二叉树的遍历顺序即前序遍历的PPT动态演示   先序遍历(或者前序遍历)       根——左——右 中序遍历:        左——根——右 后续遍历: ...
  • pengdonglin137
  • pengdonglin137
  • 2013年02月25日 19:35
  • 1080

二叉树的三种遍历练习题

一 二叉树的基础问题
  • XSF50717
  • XSF50717
  • 2014年10月11日 20:10
  • 5772

二叉树的遍历有几种方式?

先建立一个二叉树 public class Tree{ public string Value; public Tree Left; public Tree Right; } publi...
  • ax1274669874
  • ax1274669874
  • 2017年04月21日 22:28
  • 159

二叉树的遍历及其应用

#include #include using namespace std; typedef int ElemType; typedef struct TreeNode *BinTree; t...
  • guojz049
  • guojz049
  • 2016年06月06日 19:51
  • 249

用代码实现二叉树的遍历-Java经典面试题算法部分核心

树的特征: 都有根节点:根节点指的是最上面的一个节点 当孩子节点没有孩子,我们称这样的孩子称为叶子节点 在一棵树中,纵向最长的长度为数的深度 当一棵树每一个节点的孩子不超过2个,我们称这棵树为...
  • SoWhatWorld
  • SoWhatWorld
  • 2017年08月20日 16:04
  • 120
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:26847: 二叉树的遍历
举报原因:
原因补充:

(最多只允许输入30个字)