(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)

目录

初识遍历:

创建二叉树  (http://t.csdn.cn/qgzDU)

遍历二叉树:

前序遍历:

中序遍历:

后序遍历:


初识遍历:

特点:

按某条搜索路线遍访每个结点且不重复(又称周游)

作用:
它是树结构插入、删除、修改、查找和排序运算的前提,是二叉树一切运算的基础和核心

创建二叉树  (http://t.csdn.cn/qgzDU)

遍历二叉树:

前序遍历:

若二叉树为空,则空操作;否则
        1.访问根结点
        2.前序遍历左子树
        3.前序遍历右子树

特点:第一位一定是根节点

如下图所示:从根结点A开始,先遍历左子树B,然后再遍历B的左子树D,因为D没有左右子树,所以返回B点,遍历B的右子树E,遍历完A的左子树B后开始遍历A的右子树C (根-左-右)

/** 前序遍历:也叫做先根遍历、先序遍历、前序周游。可以记做根-左-右 */
void PreOrderTraverse(TreeNode* node)
{//先访问根结点,然后遍历左子树,最后遍历右子树if (node) {printf("[%d, %s]-", node->data.id, node->data.name);PreOrderTraverse(node->left);PreOrderTraverse(node->right);}
}

中序遍历:

若二叉树为空,则空操作;否则
        1.中序遍历左子树
        2.访问根结点
        3.中序遍历右子树

特点:根节点必在中间

如下图所示:先访问最左边的结点,然后访问相应的根结点,最后访问右结点(左-根-右)

/** 中序遍历:也叫做中根遍历、中序周游。左-根-右 */
void InOrderTraverse(TreeNode* node)
{if (node) {InOrderTraverse(node->left);printf("[%d, %s]-", node->data.id, node->data.name);InOrderTraverse(node->right);}
}

后序遍历:

若二叉树为空,则空操作;否则
        后序遍历左子树
        后序遍历右子树
        访问根结点

特点:最后一位一定是根节点

如下图所示:先访问左结点,在访问右结点,最后访问根结点(左-右-根)

/** 后序遍历:也叫做后根遍历、后序周游。左-右-根 */
void PostOrderTraverse(TreeNode* node)
{if (node) {PostOrderTraverse(node->left);PostOrderTraverse(node->right);printf("[%d, %s]-", node->data.id, node->data.name);}
}

c语言数据结构-遍历相关推荐

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

    1.二叉树的遍历是指从根节点出发,按照某种次序依次访问二叉树中的所有结点,使得每个节点被访问依次且仅被访问一次. 2.前序遍历: 规则是若二叉树为空,则空操作返回,否则先访问根节点,然后前序遍历左子树 ...

  2. C语言数据结构之二叉树的层次建树及遍历方法(前序,中序,后序,层次遍历)

    C语言数据结构之二叉树的层次建树及遍历方法(前序,中序,后序,层次遍历) tips:前些天学习了C语言数据结构链表,栈,队列.今天来学习一下C语言数据结构之二叉树的各种操作. 注意:二叉树的层次建树是 ...

  3. 一些可运行的C语言数据结构代码

    网上有很多C语言数据结构代码:有的不能运行:下面是一些能运行的,和运行截图:备用一下: 1 队列 #include<stdio.h> #include<stdlib.h>#de ...

  4. 顺序表输入栈元素c语言,C语言数据结构之栈简单操作

    C语言数据结构之栈简单操作 实验: 编写一个程序实现顺序栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能: (1)初始化顺序栈 (2)插入元素 (3)删除栈顶元素 (4)取栈顶元素 (5)遍 ...

  5. 用数据结构c语言写成绩排序,C语言数据结构 快速排序实例详解

    C语言数据结构 快速排序实例详解 一.快速排序简介 快速排序采用分治的思想,第一趟先将一串数字分为两部分,第一部分的数值都比第二部分要小,然后按照这种方法,依次对两边的数据进行排序. 二.代码实现 # ...

  6. 厦门理工C语言实验报告8,厦门理工c语言数据结构实验

    <厦门理工c语言数据结构实验>由会员分享,可在线阅读,更多相关<厦门理工c语言数据结构实验(15页珍藏版)>请在人人文库网上搜索. 1.数据结构实验报告 实验序号:6 实验项目 ...

  7. 【c语言数据结构】二叉树

    c语言数据结构完全二叉树 快速开始 直接参考示例代码即可 介绍 概念 二叉树(Binary tree)是树形结构的一个重要类型. 许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单 ...

  8. C语言数据结构【手抄版】第五章 树和二叉树【上篇】

    注意:文中彩色代码均在Visual Studio 2022编译器中编写,本文为C语言数据结构手抄版,文中有部分改动,非原创. 目录 5.1.树的基本概念和术语 1.树的定义 2.树的表示法 3.基本术 ...

  9. c语言 数据结构 课程设计 通讯录制作

    c语言  数据结构  课程设计  源码 infoBook.c #include "dataStruct.h" #include <stdio.h> #include & ...

最新文章

  1. k8s master 节点加入到可以调配node节点中的命令
  2. 单片机利用蜂鸣器如何输出音乐
  3. 使用Notepad++工具查看文件的十六进制
  4. Delphi下的GDI+编程[2] DrawLine - 绘制直线
  5. 配置arm-linux-gcc 位置
  6. 数据库和Webapp安全
  7. python网络编程2-黏包问题
  8. 信息学奥赛一本通 1018:其他数据类型存储空间大小 | OpenJudge NOI 1.2 03
  9. linux系统端口更换,在Linux中怎样修改httpd的端口号
  10. 程序员一人对接四人郁闷吐槽:轮流指挥,只有我从天亮忙到天黑
  11. ARM中国上演夺权互撕大战:抢公章、互发声明、董事长兼CEO“被罢免”
  12. Java 苹果支付applepay服务端验证
  13. python错误提示未定义tn_未找到Python方法,但在类中定义
  14. [转载]如何为Foxmail设置gmail客户端
  15. PLUS模型教程2:数据前期准备和土地利用数量预测
  16. HHKB键盘使用说明书
  17. 如何确定论文研究方向,看了很多论文还是没有头绪?
  18. 怎么给新加的固态硬盘装系统
  19. C语言——将数字和数字字符输入给char型变量会如何?
  20. 爬虫实战——爬取杭电就业信息网招聘信息

热门文章

  1. LSP技术 注入技术 劫持
  2. 读ICCV Best Student Paper有感
  3. 【调剂】重庆理工大学2022年硕士研究生招生调剂公告
  4. STM32学习记录——74HC595四位数码管显示
  5. 阿德莱德大学计算机专业学费,阿德莱德大学费用清单
  6. video标签的属性和事件用法大全
  7. 在Latex论文下方添加copyright
  8. C#学习笔记——菜鸟教程C#学习重点归纳
  9. Oracle 中文日期转换
  10. C/C++代码缺陷静态检查工具cppcheck