1. 前序遍历

先访问自己,然后访问左子树,再访问右子树

(1) 递归方法

function(node*p)
{print p.valuefunction(p->left);function(p->right);
}

(2)非递归方法

while(p!=null&&!stack.empty())
{while(p!=null){print p.value;stack.push(p);p=p.left;}if(!stack.empty()){temp=stack.pop();p=temp.right;}
}

2、中序遍历

先访问左子树,再访问自己,然后访问右子树

(1)递归方法

function(node*p)
{function(p->left);print p.valuefunction(p->right);
}

(2)非递归方法

while(p!=null&&!stack.empty())
{while(p!=null){stack.push(p);p=p.left;}if(!stack.empty()){temp=stack.pop();print temp.value;    p=temp.right;}
}

3.后序遍历

先左子树,后右子树,后自己

(1)递归方法

function(node*p)
{function(p->left);function(p->right);print p.value
}

(2)非递归方法

while(p!=null&&!stack.empty())
{while(p!=null){stack.push(p);p=p.left;}if(!stack.empty()){temp=statck.first();if(temp.isfirst==false){temp.isfirst=true;p=temp.right}else{temp=stack.pop();print temp.value}}
}

4、广度优先遍历

广度优先遍历主要是用队列来实现,每次都是从队列的首个元素取出,先进先出

function(node*p)
{Queue.insert(p);While(!queue.empty()){p=queue.pop();queue.push(p->left);queue.push(p->right);print p.value;}
}

5、深度优先遍历

深度优先遍历主要是用栈来实现,每次都从栈顶取出。

function(node*p)
{Stack.insert(p);While(!Stack.empty()){p=Stack.pop();Stack.push(p->left);Stack.push(p->right);print p.value;}
}

数据结构(十三)树的遍历相关推荐

  1. 数据结构思维 第六章 树的遍历

    第六章 树的遍历 原文:Chapter 6 Tree traversal 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 本章将介绍一个 Web 搜索引擎,我们将在本书其余部分开 ...

  2. 【数据结构-树】1.树与森林(树的遍历、树的存储方法、并查集的实现)

    树的定义 树是一种数据结构,它是由 n(n>=1)n(n>=1)n(n>=1) 个有限结点组成一个具有层次关系的集合.把它叫做 "树" 是因为它看起来像一棵倒挂的 ...

  3. 算法与数据结构--空间复杂度O(1)遍历树

    大家好~我叫「小鹿鹿鹿」,是本卖萌小屋的第二位签约作(萌)者(货).和小夕一样现在在从事NLP相关工作,希望和大家分享NLP相关的.不限于NLP的各种小想法,新技术.这是我的第一篇试水文章,初来乍到, ...

  4. 树的基本概念和遍历规则 数据结构和算法 二叉树遍历(前序、中序、后序、层次、深度优先、广度优先遍历)

    zsychanpin 博客园 首页 新随笔 联系 订阅 管理 树的基本概念和遍历规则 树的递归定义 树是n(n>0)个结点的有限集,这个集合满足下面条件:       ⑴有且仅有一个结点没有前驱 ...

  5. DSt:数据结构的简介、最强学习路线(逻辑结构【数组-链表-栈和队列/树-图-哈希】、物理结构、数据运算【十大排序/四大查找-图三大搜索-树三大遍历】、高级算法【贪心/分治/动态规划】之详细攻略

    DSt:数据结构的简介.最强学习路线(逻辑结构[数组-链表-栈和队列/树-图-哈希].物理结构[元素/关系].数据运算[十大排序/四大查找-图三大搜索-树三大遍历].高级算法[贪心/分治/动态规划]) ...

  6. 数据结构——树的遍历

    文章目录 数据结构--树的遍历 1.树的基本概念 2.树的遍历 Tree Traversal 3.前序遍历 Preorder Traversal 4.中序遍历 Inorder Traversal 5. ...

  7. 数据结构 树的遍历(递归遍历)

    //树的遍历--递归遍历 #include<stdio.h> #include<stdlib.h> #include<string.h>typedef struct ...

  8. 字符串匹配数据结构 --Trie树 高效实现搜索词提示 / IDE自动补全

    文章目录 1. 算法背景 2. Trie 树实现原理 2.1 Trie 树的构建 2.2 Trie树的查找 2.3 Trie树的遍历 2.4 Trie树的时间/空间复杂度 2.5 Trie 树 Vs ...

  9. 数据结构显示树的所有结点_您需要了解的有关树数据结构的所有信息

    数据结构显示树的所有结点 When you first learn to code, it's common to learn arrays as the "main data struct ...

最新文章

  1. java类加载器、双亲委派、沙箱安全机制全都让你整明白(三万字,收藏慢慢啃)
  2. mac os 安装linux驱动,教程:Ubuntu 14.04安装Mac OS X主题
  3. 手握顶会顶刊论文,自信满满面试算法岗竟被刷?
  4. 信息学奥赛一本通 1064:奥运奖牌计数 | OpenJudge NOI 1.5 07
  5. rgb红色范围_RGB与BRG模式
  6. springcloud断点续传源码_SpringCloud 超大文件上传和断点续传的实现
  7. 智能控制-模糊控制Matlab函数汇总
  8. 计算机平面设计与工程论文,计算机平面设计毕业论文
  9. OpenCV学习——摄像头实时进行人脸识别
  10. svn 1.12.0 版本以及汉化包(百度网盘分享--永久有效)
  11. Matlab中求解总体标准差和样本标准差的区别(std函数)
  12. 程序员这高薪岗位只有计算机专业的能做?
  13. 大数据笔记(三):HDFS集群搭建-伪分布式模式
  14. (计算机体系结构)7.3 基于硬件的前瞻执行
  15. 动态网站开发(应该怎么做啊)
  16. JZOJ 4210. 【五校联考1day1】我才不是萝莉控呢
  17. 锐捷睿易RAP100全新上市 WALL AP也有超高性能
  18. 树莓派4B安装官方发布64位 Raspberry Pi OS 系统
  19. datagrip 快捷键
  20. Robocode教程1——安装、运行、配置

热门文章

  1. put多文件上传linux,linux 上传lftp 服务器
  2. mysql timestamp add_「timestampdiff」MySQL中TIMESTAMPDIFF和TIMESTAMPADD函数的用法 - seo实验室...
  3. html button 自动提交,html+js表单form验证自动提交的2种提交方式button和
  4. python sendfile_python发邮件
  5. html5文本超过指定行数隐藏显示省略号
  6. 从对集合数据去重到Distinct源码分析
  7. C++中 #define的用法
  8. 人民币 小写金额转换为大写金额
  9. ANDROID深度探索(卷1)HAL与驱动开发 第四章
  10. [转]linux之top命令