数据结构复习——二叉树的表示及遍历

数据结构复习 此文是《数据结构与算法——C语言描述(第二版)》书的阅读笔记 阅读详情

一、常用概念

1.一棵有N个结点的树有N-1条边

2.结点的度:结点的子树个数

3.树的度:树的所有结点中最大的度数

4.一棵树采用  firstChild-nextSibling 表示方法可以转换为二叉树

5.二叉树的子树有左右之分,二叉树有5中基本形式

6.满二叉树:深度为k,共有2^k-1个结点

7.完全二叉树:按序号对应

二、二叉树遍历

typedef struct treeNode * PTree;
struct treeNode{	//树的结点定义
	int Data;
	PTree Left;
	PTree Right;
};

/*
*二叉树的遍历
*/

/*  --------------------递归遍历-----------------------------*/

//递归前序遍历
void preTravel(PTree tree){
	if(tree){
		printf("%d ", tree->Data);
		preTravel(tree->Left);
		preTravel(tree->Right);
	}
}

//递归中序遍历
void inTravel(PTree tree){
	if(tree){
		inTravel(tree->Left);
		printf("%d ", tree->Data);
		inTravel(tree->Right);
	}
}

//递归后序遍历
void afterTravel(PTree tree){
	if(tree){
		afterTravel(tree->Left);
		afterTravel(tree->Right);
		printf("%d ", tree->Data);
	}
}

/*  --------------------非递归遍历-----------------------------*/

//非递归中序遍历

void inTravel2(PTree tree){
	PStack s = initStack();		//初始化一个空栈
	PTree t;
	while(t || !isEmpty(s)){
		while(t){
			push(s, t);
			t = t->Left;
		}
		if(!isEmpty(s)){
			t = pop(s);
			printf("%d ", t->Data);
			t = t->Right;
		}
	}
}

//非递归先序遍历

//非递归中序遍历

void preTravel2(PTree tree){
	PStack s = initStack();		//初始化一个空栈
	PTree t;
	while(t || !isEmpty(s)){
		while(t){
			printf("%d ", t->Data);
			push(s, t);
			t = t->Left;
		}
		if(!isEmpty(s)){
			t = pop(s);
			t = t->Right;
		}
	}
}

【大学复习】算法与数据结构试卷分析 一 填空题 1.数据的逻辑结构是从 逻辑 关系上描述数据,它与数据的 具体存储 无关,是独立于计算机的。 2.在一个带头结点的单循环链表中,p指向尾结点的直接前驱,则指向头结点的指针head可用p表示为head= p->next->next .尾结点表示为 p->next 3.栈顶的位置是随着 入栈 和 出栈 操作而变... 阅读详情

相关推荐

[渝粤教育] 兴义民族师范学院 数据结构 参考 资料

教育 -数据结构-章节资料考试资料-兴义民族师范学院【】 小测验:算法复杂度 1、【单选题】下列函数中,哪个函数具有最快的增长速度: A、 B、 C、 D、 参考资料【 】 2、【单选题】下面一段代码的时间复杂度是?if ( A B ) { for ( i=0; iN; i++ ) for ( j=NN; ji; j-- ) A += B; } else { for ( i=0; iN2; i++ ) for ( j=N2; ji; j-- ) A += B; } A、 B、 C、 D、 参考资料

渝粤题库 389

DS_Tree

1-1对于一个有N个结点、K条边的森林,不能确定它共有几棵树。F[解析]设边的数目 EdgeNum, 树的数目为 TreeNum 根据 NodeNum - 1 = EdgeNum 所以 (NodeNum1 - 1) + … + (NodeNumi - 1) = K 即 N - TreeNum = K1-2树是表示多对多关系的数据结构。F1-3从树的根结点到任何一个叶结点都有唯一的一条线性表。F1-4一棵树中位于同一层上的结点称为兄弟结点。F1-5一棵树中,某结点位置上方各层中的所有结点都是该结点的祖先。F2

m0_61758697的博客 2925

2023数据结构考研复习-树(五)

2023数据结构考研复习-树(五)树的定义先序遍历后序遍历树的深度层次遍历线索二叉树双亲表示法应用插入左孩子节点 树的定义 #include <iostream> using namespace std; struct Node { int data; Node *l, *r; } struct LinkNode { Node *data; // 存指针 LinkNode *next; } struct Queue { LinkNode *front,

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 476

数据结构之树与二叉树——算法与数据结构入门笔记(五)

本文是算法与数据结构的学习笔记第五篇,将持续更新,欢迎小伙伴们阅读学习。有不懂的或错误的地方,欢迎交流。 前面章节介绍的都是线性存储的数据结构,包括数组、链表、栈、队列。本节带大家学习一种非线性存储的数据结构,即树(tree)。 不管是在面试时,还是日常开发过程中,树都是一种曝光率极高的数据结构。可以说树是数据结构最为承上启下的部分,其可以转化为线性表(通过二叉树的线索化),也是学习图的基础。本文将介绍树的基本概念、常见类型和应用、二叉树以及 C 语言实现,帮助大家深入理解树的本质和用途。

一名机电研究生的博客 8077

树——牛客网刷题第一波

做一下数据结构吧,这一块分的也比较细,每个大知识点就是一个专项,那就从树开始吧: 1.不同的求最小生成树的方法最后得到的生成树是相同的(B) A. 对 B. 错 解析:最小生成树是无向图的连通子图。从不同的结点开始,图的存储方式不同,生成树都不相同。 2.设有一棵3 阶 B 树,如下图所示。删除关键字 78 得到一棵新 B 树,其最右叶结点所含的关键字是(D)。 A. 60 ...

想不出一个好的标题,就用这个吧 4922

神经网络(十五)在VS Code下搭建PyTorch环境

pytorch在vscode中的配置和使用

就随便写写.... 5万+

5. 树--二叉树的表示及其遍历

二叉树定义 一个有穷的结点集合 这个集合可以为空 若不为空,则它是由根结点和称为其左子树TL T_L 和右子树TR T_R 的两个不相交的二叉树组成。 二叉树具体五种基本形态 二叉树的子树有左右顺序之分 特殊二叉树斜二叉树(Skewed Binary Tree)满二叉树(Full Binary Tree)又称完美二叉树(Perfect Binary Tree)完全二叉树(Complete Binar

kurisu的咸鱼生活 658

【阿里云大模型高级工程师ACP习题集】2.7 通过微调增强模型能力 (下篇)(⭐️⭐️⭐️ 重点章节!!!)

【摘要】这是我精心整理出对应的习题集,里面足足有 30 道题目,从基础概念到深度拓展,全方位覆盖章节重点、难点。不管你是想检验自己的学习成果,还是想针对薄弱环节进行强化训练,它都能完美适配!

davidkorhenn的博客 1117

【数据结构】二叉树的定义及二叉树的遍历,肯定是最详细的(附有源码-可直接运行)

【数据结构】二叉树的定义及二叉树的遍历,肯定是最详细的(附有源码-可直接运行)前边的可以的

m0_61196970的博客 1417

从零构建2.4G无线通信系统:MSPM0G3507与NRF24L01的深度协同设计

本文详细介绍了基于MSPM0G3507微控制器与NRF24L01射频模块构建2.4G无线通信系统的深度协同设计方案。内容涵盖系统架构、SPI通信优化、功耗管理、抗干扰机制及中断/DMA高效利用,为工业物联网应用提供高可靠、低功耗的无线传输解决方案。

rice5的博客 820

Uncertainty-Aware Mean Teacher(UA-MT)

本文提出了一种新的基于不确定性的半监督学习框架(UA-MT),通过额外利用未标记的数据从3D MR图像中分割左心房。具体地说,本文建立了一个教师模型和一个学生模型,学生模型通过最小化标注数据上的分割监督损失和所有输入数据上的与教师模型预测输出的一致性损失进行优化。如果没有未标记输入中的注释,教师模型的预测目标可能不可靠且有噪声。:在估计不确定性 U 的指导下,我们过滤掉相对不可靠**(高不确定性),整个体积** U 的不确定性**是 {u} ∈ RH×W ×D。过滤掉高不确定性的,也就是熵大于某个值的。

Alexa_的博客 1869

数据结构选择题(期末)

76.给定无向图G,从V0出发进行深度优先遍历访问的边集合为: {(V0,V1), (V0,V4), (V1,V2), (V1,V3), (V4,V5), (V5,V6)}。50.若一棵二叉树的前序遍历序列是{ 4, 2, 1, 3, 6, 5, 7 },中序遍历序列是{ 1, 2, 3, 4, 5, 6, 7 },则下列哪句是错的?52.若一棵二叉树的后序遍历序列是{ 1, 3, 2, 6, 5, 7, 4 },中序遍历序列是{ 1, 2, 3, 4, 5, 6, 7 },则下列哪句是错的?

2301_80484340的博客 2595

LED背光驱动电路解析:从MP3394芯片到液晶屏灯管控制

本文深入解析了以MP3394芯片为核心的LED背光驱动电路工作原理。从升压电路的能量转换到多路LED的均流控制,详细阐述了其作为液晶屏背光“大脑”的关键作用,并提供了黑屏、闪屏、亮度不均等常见故障的实战检修思路与排查方法。

agile9scrum的博客 817

(期末考试prepare)数据结构(C语言版)第五章——树和二叉树·附习题

上数据结构时候写的期末复习笔记,根据考点走,这篇博文主要讲解树和二叉树

111辄的博客 1842

手把手教你学Simulink——基于Simulink的无位置传感器PMSM滑模观测器(SMO)控制

本文基于Simulink平台实现无位置传感器PMSM滑模观测器(SMO)控制,解决了传统机械位置传感器存在的成本高、体积大、抗干扰差等问题。SMO通过滑模切换函数估算反电动势,进而获得转子位置和速度,具有强鲁棒性(参数变化20%误差仅0.4°)和良好低速性能(50rpm转矩衰减<5%)。文章详细介绍了PMSM数学模型、SMO算法设计、Simulink建模步骤及参数优化方法,提供了可直接工程应用的MATLAB代码和仿真模型,为电动汽车驱动、工业机器人等高精度控制场景提供了有效解决方案。

MHD0815的博客 228

对接金蝶云星空调用即时库存信息查询API(附JAVA实现)

这篇文章教你如何对接金蝶API并且使用JAVA调用金蝶云星空的即时库存查询API

实用的博客 2608

数据结构期末考点复习

本文系统介绍了快速排序、循环队列及树与二叉树的相关数据结构与算法。快速排序通过分治思想实现高效排序;循环队列采用数组实现,利用tag标记判断满空状态;树的存储方式包括双亲、孩子、二叉链等表示法,并给出求深度的递归方法;二叉树遍历涵盖先序、中序、层次遍历的递归与非递归实现,以及求第k层叶节点数的层次遍历算法。

Leonaut的博客 2030

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【NOIp复习】数据结构之栈、队列和二叉树

栈1、STL中的stack头文件自带函数 empty()堆栈是否为空 push()压入元素 pop()弹出元素(并不会返回顶部元素,pop之前先判断!empty()) size()(返回栈的元素个数) top()(返回栈顶元素) 声明:stack<元素类型> 堆栈名 复制:stack c1(c2) 代表将c2复制到c1 2、数制转换输入格式输入一个十进制数N与需要转换的进制d输出格式输出转换后的d进

尽吾之力,以达天际 1814

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

数据结构基础算法复习提纲(期末/考研复习)

本文仅给出数据结构中难度不算大、比较基础的一些算法题目,不会给出具体代码,仅做总结。内容仅作参考,如果有错误请以你的复习资料为准。

m0_62378244的博客 686

考研数据结构程序题常见代码【C语言实现】

考研院校要求C语言实现数据结构,可前期做数据结构都是用Java实现,因此对于C不那么熟悉,花了一些时间重新捡起来C的语法,程序题通常不会考太过复杂的算法,因此自己将辅导书上一些母题进行了实现,其中层序遍历部分需要用到队列,查了一下发现C语言没有现成的头文件调入使用,因此这部分用了C++的语法,除此之外皆为C的语法,现整理如下 链表 结构体实现链表样例 #include<stdio.h> #include<stdlib.h> typedef struct Node{ int nu.

Infinity_and_beyond的博客 4459

(期末考试prepare)数据结构(C语言版)第七章——查找(顺序表、树表、哈希表)·附习题

上数据结构课程时候写的期末复习笔记,根据考点走,这篇博文是查找(顺序表、树表、哈希表)等

111辄的博客 1893

树

树是一种非线性结构 1. 树的定义 树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。 2. 而我们这一章学习的主要是二叉树,二叉树有以下基本性质: 性质1:二叉树第i层上的结点数目最多为2{i-1}(i≥1)。性质2:深度为k的二叉树至多有2{k}-1个结点(k≥1)。性质3:包含n个结点的二叉树的高度至少为log2(n+1)。性质4:在任意一棵二叉...

weixin_30493401的博客 87

【万字总结】数据结构常考应用大题做法画法详解_树_哈希表_图_排序大总结

【万字总结】数据结构常考应用大题做法画法详解_树_哈希表_图_排序大总结

weixin_62613321的博客 3015

(期末考试prepare)数据结构(c语言版)第八章——内部排序(插入/选择/冒泡/快排/堆排序/基数排序)

上数据结构课程时候写的期末复习笔记,根据考点走,这篇是讲的内部排序:插入、选择、冒泡、快排等

111辄的博客 1248
上一篇: 数据结构复习——线性表(四)队列
下一篇: java多线程(四)java.util.concurrent总结
three__stones
博客等级 码龄11年 6粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值