c语言数据结构-遍历
(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)
目录
初识遍历:
创建二叉树 (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语言数据结构-遍历相关推荐
- C语言数据结构——遍历二叉树
1.二叉树的遍历是指从根节点出发,按照某种次序依次访问二叉树中的所有结点,使得每个节点被访问依次且仅被访问一次. 2.前序遍历: 规则是若二叉树为空,则空操作返回,否则先访问根节点,然后前序遍历左子树 ...
- C语言数据结构之二叉树的层次建树及遍历方法(前序,中序,后序,层次遍历)
C语言数据结构之二叉树的层次建树及遍历方法(前序,中序,后序,层次遍历) tips:前些天学习了C语言数据结构链表,栈,队列.今天来学习一下C语言数据结构之二叉树的各种操作. 注意:二叉树的层次建树是 ...
- 一些可运行的C语言数据结构代码
网上有很多C语言数据结构代码:有的不能运行:下面是一些能运行的,和运行截图:备用一下: 1 队列 #include<stdio.h> #include<stdlib.h>#de ...
- 顺序表输入栈元素c语言,C语言数据结构之栈简单操作
C语言数据结构之栈简单操作 实验: 编写一个程序实现顺序栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能: (1)初始化顺序栈 (2)插入元素 (3)删除栈顶元素 (4)取栈顶元素 (5)遍 ...
- 用数据结构c语言写成绩排序,C语言数据结构 快速排序实例详解
C语言数据结构 快速排序实例详解 一.快速排序简介 快速排序采用分治的思想,第一趟先将一串数字分为两部分,第一部分的数值都比第二部分要小,然后按照这种方法,依次对两边的数据进行排序. 二.代码实现 # ...
- 厦门理工C语言实验报告8,厦门理工c语言数据结构实验
<厦门理工c语言数据结构实验>由会员分享,可在线阅读,更多相关<厦门理工c语言数据结构实验(15页珍藏版)>请在人人文库网上搜索. 1.数据结构实验报告 实验序号:6 实验项目 ...
- 【c语言数据结构】二叉树
c语言数据结构完全二叉树 快速开始 直接参考示例代码即可 介绍 概念 二叉树(Binary tree)是树形结构的一个重要类型. 许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单 ...
- C语言数据结构【手抄版】第五章 树和二叉树【上篇】
注意:文中彩色代码均在Visual Studio 2022编译器中编写,本文为C语言数据结构手抄版,文中有部分改动,非原创. 目录 5.1.树的基本概念和术语 1.树的定义 2.树的表示法 3.基本术 ...
- c语言 数据结构 课程设计 通讯录制作
c语言 数据结构 课程设计 源码 infoBook.c #include "dataStruct.h" #include <stdio.h> #include & ...
最新文章
- k8s master 节点加入到可以调配node节点中的命令
- 单片机利用蜂鸣器如何输出音乐
- 使用Notepad++工具查看文件的十六进制
- Delphi下的GDI+编程[2] DrawLine - 绘制直线
- 配置arm-linux-gcc 位置
- 数据库和Webapp安全
- python网络编程2-黏包问题
- 信息学奥赛一本通 1018:其他数据类型存储空间大小 | OpenJudge NOI 1.2 03
- linux系统端口更换,在Linux中怎样修改httpd的端口号
- 程序员一人对接四人郁闷吐槽:轮流指挥,只有我从天亮忙到天黑
- ARM中国上演夺权互撕大战:抢公章、互发声明、董事长兼CEO“被罢免”
- Java 苹果支付applepay服务端验证
- python错误提示未定义tn_未找到Python方法,但在类中定义
- [转载]如何为Foxmail设置gmail客户端
- PLUS模型教程2:数据前期准备和土地利用数量预测
- HHKB键盘使用说明书
- 如何确定论文研究方向,看了很多论文还是没有头绪?
- 怎么给新加的固态硬盘装系统
- C语言——将数字和数字字符输入给char型变量会如何?
- 爬虫实战——爬取杭电就业信息网招聘信息