首页 > 其他分享 >遍历二叉树和线索二叉树

遍历二叉树和线索二叉树

时间:2022-11-19 16:59:27浏览次数:47  
标签:Status 遍历 中序 PreOrderTraverse 二叉树 NULL 线索

遍历二叉树:

     L:左 D:根  R:右

        DLR-先根遍历

        LDR-中序遍历

        LRD-后序遍历

 

  要求:给一棵二叉树,写出它的三种遍历顺序

             根据先序,中序序列画出二叉树;根据中序,后序序列画出二叉树(上面的反推)

 

 算法:根据递归

            先序遍历:

 

            Status PreOrderTraverse(BiTree T){

               if(T==NULL) return OK;

               else{

                    visit(T);//输出该结点的数据域

                   PreOrderTraverse(T->lchild);

                   PreOrderTraverse(T->rchild);

               }

            }

         

           中序遍历:

 

         Status  InOrderTraverse(BiTree T){

             if(T==NULL) return OK;

            else{

                   PreOrderTraverse(T->lchild);

                   visit(T);//输出该结点的数据域

                   PreOrderTraverse(T->rchild);

               }

            }

         

            后序遍历:

          

            

 Status  InOrderTraverse(BiTree T){

             if(T==NULL) return OK;

            else{

                   PreOrderTraverse(T->lchild);

                   PreOrderTraverse(T->rchild);

                   visit(T);//输出该结点的数据域

               }

            }

 

 

 

        时间,空间复杂度: O(n)

标签:Status,遍历,中序,PreOrderTraverse,二叉树,NULL,线索
From: https://www.cnblogs.com/2-3-7/p/16906419.html

相关文章

  • 二叉树的性质和存储结构
    性质:在二叉树的第i层最多有2^(i-1)个结点(i>=1)深度为k的二叉树最多有2^k-1个结点(运用等比求和)对任何一棵二叉树T,如果叶子数为n0,度为2的结点数为n2,则n0=n2+1(根据二叉......
  • 二叉树的前、中、后序遍历(迭代版)
    //前序遍历顺序:中-左-右,入栈顺序:中-右-左classSolution{publicList<Integer>preorderTraversal(TreeNoderoot){List<Integer>result=newArrayL......
  • 二叉树的前序、中序、后序遍历
    144.二叉树的前序遍历/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;*......
  • 二叉树二刷
    今天先整理二叉树,dijkstra和链表二刷过几天有空会整理首先二叉树的几个性质就不说了,其中一个我认为比较好用的是满足二叉树连通,边数等于顶点数-1的结构就一定是一棵树这......
  • 二叉树的三种遍历
    #include<stdio.h>#include<stdlib.h>#include<string.h>chara[55];inti;structnode{intdata;structnode*ls,*rs;};structnode*cr(){structnode*r......
  • 236. 二叉树的最近公共祖先 ----- 图解递归,排除左/右子树
    给定一个二叉树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个节点p、q,最近公共祖先表示为一个节点x,满足x是p、q......
  • 二叉树可视化 - 哈夫曼树
    哈夫曼树可视化importmatplotlib.pyplotaspltclassTree:def__init__(self,weight=None,left=None,right=None):self.weight=weights......
  • 57:for循环结构_遍历各种可迭代对象_range对象
    ###for循环和可迭代对象遍历for循环通常用于可迭代对象的遍历。for循环的语法格式如下:for变量in可迭代对象:  循环体语句【操作】遍历一个元组或列表forxin(2......
  • 114. 二叉树展开为链表 -----
    给你二叉树的根结点root,请你将它展开为一个单链表:展开后的单链表应该同样使用TreeNode,其中right子指针指向链表中下一个结点,而左子指针始终为null。展开后的单链......
  • 十六、二叉树(二叉链表)遍历算法
    一、二叉树的遍历遍历二叉树(Traversingbinarytree)是指按某条搜索路径巡访树中每个结点,使得每个结点均被访问一次,而且仅被访问一次。先序遍历(根左右)中序遍历......