专业课-数据结构(树与二叉树实验)

2021 年苏州大学计算机考研专业课 872 真题 --- 数据结构部分 2021 年苏州大学计算机考研专业课 872 真题 --- 数据结构部分 2021 年苏州大学计算机考研专业课 872 真题 --- 数据结构部分 >>  大家好,我叫亓官劼(qí guān jié ),在优快云中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在优快云中写博客,唯一博客更新的地址为:[亓官劼的博客](https://blog.youkuaiyun.com/qq_43422111) > >> 本文原创为亓官劼,请大家支持原创,部分平台一直在恶意盗取博主的文章!!! > 阅读详情

【题目来源】:
数据结构-用C语言描述(耿国华第二版)P209页实习题1
实验内容:
建立一棵用二叉链表方式存储的二叉树,并对其进行遍历(先序、中序和后序),打印输出遍历结果。
【基本要求】:
从键盘接收输入先序序列,二叉链表作为存储结构,建立二叉树(以先序建立)并对其进行遍历(先序、中序、后序),然后将遍历结果打印输出。要求采用递归和非递归两种方法实现。
【测试数据】:
ABC[][]DE[]G[][]F[][][] ([]表示空格字符)
输出结果:先序序列为ABCDEFG
中序序列为CBEGDFA
后序序列为CGEFDBA

源代码

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
    
    typedef struct Node//结构体  
    {
    	char data;
    	struct Node *LChild;
    	struct Node *RChild;
    } BiTNode,*BiTree;
    
    void InitTree(BiTree *l)//初始化
    {
    *l= (BiTree)malloc(sizeof(BiTNode));
    (*l)->LChild = NULL;
    (*l)->RChild = NULL;
    }
    
    void CreateBiTree(BiTree *bt) //先序创建二叉树 
    {
    	char ch;
    	ch = getchar();
    	if (ch == ' ') *bt = NULL;
    	else
    	{
    		*bt = (BiTree)malloc(sizeof(BiTNode));
    		(*bt)->data = ch;
    		CreateBiTree(&((*bt)->LChild));
    		CreateBiTree(&((*bt)->RChild));
    	}
    }
    
    void PreOrder(BiTree root)//先序遍历 
    {
    	if (root != NULL)
    	{
    		printf("%c", root->data);
    		PreOrder(root->LChild);
    		PreOrder(root->RChild);
    	}
    }
    
    void InOrder(BiTree root)//中序遍历 
    {
    	if (root != NULL)
    	{
    		InOrder(root->LChild);
    		printf("%c", root->data);
    		InOrder(root->RChild);
    	}
    }
    
    void PostOrder(BiTree root)//后序遍历 
    {
    	if (root != NULL)
    	{
    		PostOrder(root->LChild);
    		PostOrder(root->RChild);
    		printf("%c", root->data);
    	}
    }
    
    int main()
    {
    
    	BiTree T;
    	InitTree(&T);
    	CreateBiTree(&T);
    	printf("先序序列为 ");
    	PreOrder(T);
    	printf("\n");
    	printf("中序序列为 ");
    	InOrder(T);
    	printf("\n");
    	printf("后序序列为 ");
    	PostOrder(T);
    	printf("\n");
    	system("pause");
    }

学习疑问:
1.在定义结点的结构体时,*BiTree代表什么?
2.为什么写作(BiTree *l)?
3.为什么写作(*l)=(BiTree)malloc(sizeof(BiNode))?

二叉树_二叉树遍历_ 1.二叉树的基本操作实现【问题描述】建立一棵二叉树,用递归方法实现二叉树的如下基本操作:(1)按先序序列构造一棵二叉链表表示的二叉树T;(2)对这棵二叉树进行遍历:先序、中序、后序以及层次遍历,分别输出结点的遍历序列;(3)求二叉树的深度、结点数目、叶结点数目;(选做)(4)将二叉树每个结点的左右子树交换位置。(选做)【基本要求】从键盘接受输入(先序),以二叉链表作为存储结构,建立二叉树(以先序来建立)【测试数据】如输入:ABC##DE#G##F###(其中#表示空格字符)则输出结果为 先序:ABCDEGF中序:CBEGDFA后序:CGEFDBA层序:ABCDEFG【选做内容】采用非递归算法实现二叉树遍历。 立即下载

相关推荐

Dify+工作流,通过多模态实现发票自动识别

上个章节我们用Dify实现了基于本地知识库的聊天助手,本节我们通过工作流 ,可视化界面快速构建复杂的工作流和自动化流程。结合 OCR(光学字符识别)技术和工作流引擎,可以实现发票的自动识别、数据提取以及后续的审批流程。本文将详细介绍如何使用 Dify 和工作流来实现发票的自动识别与审批。

odin2005的博客 7425

数据结构--二叉树及其应用

一、上机实验的问题和要求: 建立一棵二叉树,并对其进行遍历(先序、中序、后序),打印输出遍历结果。 二、程序设计的基本思想,原理和算法描述: 首先创建一个二叉树BiTree,然后分别对二叉树进行先序遍历、中序遍历、后序遍历,最后得出结果并输出。 三、调试和运行程序过程中产生的问题及采取的措施: 调试程序时未发现错误 四、源程序及注释 #include<iostream> using namespace std; typedef struct BiTNode { ...

my0214163的博客 2668

Cursor集成Claude 4.6免费版:本地IDE合规调用指南

大语言模型编程助手(LLM Copilot)已成为现代开发标配,其核心能力依赖于上下文理解、代码推理与结构化输出等关键技术原理。Anthropic官方提供的Claude系列模型,尤其Claude 4.6,凭借200K超长上下文、tool use函数调用和严格可控的API设计,在工程实践中展现出显著技术价值。该能力可无缝嵌入本地IDE环境,支撑代码解释、跨文件分析、单元测试生成等高频开发场景。本文聚焦Cursor这一开源可审计IDE,详解如何合规复用Anthropic免费tier接口(/v1/messages

weixin_34095889的博客 537

建立一棵用二叉树链表方式存储的二叉树,并对其进行遍历(先序,中序和后序),打印输出遍历结果

题目如下 代码如下 #include&amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;gt; #include&amp;amp;amp;amp;lt;stdlib.h&amp;amp;amp;amp;gt; #include&amp;amp;amp;amp;lt;malloc.h&amp;amp;amp;amp;gt; typedef struct Node//结构体 { char data;

小白的Coding之旅 6万+

Modem2G/3G/4G/5G:RFFE Driver(射频前端驱动):高通平台GRFC配置方法

文 | GentlemanTsao 文章目录前言1.什么是GRFC2.GRFC的配置流程概览3.msm_sig_info的配置与分析msm_sig_info Table位置:msm_sig_info Table示例:Table元素解读:rfc_msm_sig_info_type结构体signal typemsm_gpio |grfc_num:GPIO到GRFC的映射output_typefunction_select4._sig_cfg的配置与分析_sig_cfg table位置:_sig_cfg tabl

GentelmanTsao的博客 7312

开源 AHB不对称半桥反激电路设计(六)死区时间,谐振腔电流,谐振电感函数表达式

电流跌落可以使副边电流峰值和有效值降低,减小损耗,但如果开关管 S2 导通期间,谐振电流谐等于励磁电流,即副边电流A 点降至 0,会在原边变压器内形成环流,产生损耗,同时也不利于副边同步整流管驱动的正常工作,为了保证开关管 S2 导通期。在开关管 S1 和开关管 S2 均关断的死区时间内,谐振电流给原边开关管结电容和副边整流管结电容充放电,因此会引起开关 S1 关断瞬间电流跌落与开关 S2 关断瞬间电流震荡现象,受寄生参数影响原边谐振电流波形和副边电流波形如图。降到最低,变压器以最高效率向副边传递能量。

【Simon】的博客 1228

二叉树的遍历——DFS

先序遍历 void preorder(node* root) { if(root == NULL) return; printf("%d\n", root->data); preorder(root->lchild); preorder(root->rchild); } 中序遍历 void inorder(node* root) { if(root == NULL) return; inorder(root->lchild); printf("%d\n", root.

tian__si的博客 657

Uniapp返回上一页并刷新:亲测有效的 goBack 实现技巧!

这个技巧在实际开发中非常常用,特别适合表单提交后返回列表刷新这类场景。比起依赖onShow或复杂的vuex状态同步,这种方式更直接、好维护,也不容易出 bug。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1841

建立二叉树(用二叉链表存储),并进行遍历

问题描述: 建立一棵用二叉链表方式存储的二叉树,并对其进行遍历(先序、中序和后序),打印输出遍历结果。 基本要求: 从键盘输入先序序列,以二叉链表作为存储结构, 建立二叉树(以先序来建立)并对其进行遍历(先序、中序、后序), 然后将遍历结果打印输出。`在这里插入代码片` 要求采用递归和非递归两种方法实现。 输入样例: ABC**DE*G**F*** 输出样例: 先序:ABCDEGF 中序:CBEGDFA 后序:CGEFDBA 递归实现: #include<stdio.h> #includ

qq_45831414的博客 3万+

Buck电源设计常见的一些问题(五)MOS管振荡抑制方法(三)

关于开关节点振荡的产生机制和抑制问题,总结了三种抑制方法。第一种方法是利用输入端的高频去耦电容;第二种方法是设计 RC 缓冲电路;第三种方法是优化自举电路的串联电阻。以上三种方法均通过实验加以验证,对开关节点振荡具有很好的抑制作用。应该综合同步 Buck 变换器的各项指标权衡设计。

小幽余生不加糖 1633

32、生物医学中的多模态拉曼散射成像技术

本文综述了多模态拉曼散射成像技术在生物医学领域的应用,重点探讨其在肿瘤研究、癌症无创诊断和组织功能分析中的前沿进展。通过结合自发拉曼、相干拉曼散射(CARS/SRS)、光学相干断层扫描(OCT)、荧光寿命成像(FLIM)及多光子显微技术(TPEF/SHG)等多种模态,实现了对细胞和组织的高特异性生化信息与高分辨率形态学特征的同步获取。文章还介绍了多模态SERS纳米探针的设计及其在靶向成像与治疗一体化中的潜力,并系统分析了不同成像方式的操作流程、优势互补性及临床应用场景。最后展望了该技术向小型化、智能化和个性

zzz56的博客 152

二叉树的遍历输出(先序,中序,后序,层序)

二叉树的遍历(递归遍历) 1. 先序遍历 在先序遍历中,对节点的访问工作是在它的左右儿子被访问之前进行的。换言之,先序遍历访问节点的顺序是根节点-左儿子-右儿子。由于树可以通过递归来定义,所以树的常见操作用递归实现常常是方便清晰的。 void xian(BiTree T){//先序遍历 if(T==NULL) return; visit(T); xian(T->lchild); ...

唐昊 3601

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【数据结构】二叉树、AVL树

08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活。此系列是对四年专业课程学习的回顾,索引参见:http://blog.youkuaiyun.com/xiaowei_cqu/article/details/7747205   二叉树 二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树的每个结

小魏的修行路 9143

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

计算机专业课《数据结构》重点解析

线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表。用L命名线性表,则其一般表示为:式中,a1是唯一的“第一个”数据元素,又称为表头元素;an是唯一的“最后一个”数据元素,又称表尾元素。串的模式匹配算法改进的模式匹配算法——KMP算法KMP算法进一步优化。

振华OPPO的博客世界 2929

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

2020年北京林业大学计算机科学与技术 考研复试总结+专业课复习重点

2020年北京林业大学计算机科学与技术 考研复试总结+专业课复习重点前言复试总结专业课相关 前言 有幸成功上岸北林学硕,成功续费北林,借此分享一下复试历程。 复试总结 因为疫情的原因,没有同往常一样,采用线下复试上机的考核手段,英语听力口试,专业能力测试,综合素质面试全部采用的线上模式。 三个科目的分数分配100+100+150,210分及格。 英语听力口试没什么好说的,听一段音频,之后用英语回答出来相关问题,考平时积累吧,当然最后在总成绩中也没那么重要。 第二点就是专业能力测试,以往都是去学校机房上机做

big_star17的博客 8400

【数据结构与算法】——第五章:树与二叉树(2)

【数据结构与算法】——第五章:树与二叉树(2)

cqy阳的博客 783

专业课错题记录(数据结构)

五、二叉树 1.高度为h的满二叉树有多少个节点?(A) A.2h+1−1 B.2h+1 C.2h−1 D.2h 解析:这里的h是高度,不是层次,两者的对应关系应该是高度h=总的层级数-1 2.设二叉树有n个节点,高度为h.在其中插入一个新的节点,高度发生改变的节点个数为:C A.O(1) B.O(n) C.O(h) D.O(hlog2(n)) 解析:这个题也是做的我一脸懵逼,这不是和插入的位置有关吗?看了答案才知道,原来问题想说的可能是插入一个叶子节点。答案的解析是,插入的节点的这条路径上所有的节点的高度都

肥仔的博客 3802

计算机保研/考研面试题——数据结构与算法篇

时间复杂度衡量了算法运行所需的时间资源。时间复杂度分析关注的是算法在最坏情况下的时间消耗。

安晴晚风的博客 2万+

武汉大学信管专业期末复习系列——《数据结构》(python实现) 树与二叉树

武汉大学信管专业期末复习系列——《数据结构》(python实现) 树与二叉树

榕城候佳人的博客 1869

数据结构--树

二叉树的入门(BST) 作者:写Bug的拉哥 https://www.bilibili.com/read/cv8521754 出处:bilibili 写在前面 二叉树结构一直以来都是数据结构课程中的重点和难点。不论是找工作的笔试面试,还是考研的专业课,二叉树所占的比例都是很大的。 而在原始的二叉树的基础上,有不断演化出了很多其他基于二叉树的结构,例如本教程涉及的哈夫曼树、红黑树,还有线索二叉树、B+树等等。但是不管从二叉树衍生出来的结构多么复杂多变,但是底层对于二叉树结构的理论和操作都是相通的。 所以

- 1175

【C++图解专栏】手撕数据结构与算法,探寻算法的魅力

在这个专栏,我将带着大家一起用 C++ 手撕基础的数据结构与算法,希望能够带领大家快速入门这个课程。数据结构与算法是大学计算机专业课中最重要的一门,学起来必然不轻松,所以遇到困难是非常正常的一件事。相信我,只要能够坚持下去,自己动手敲一遍一定会有不少的收获!

Newin2020的博客 1万+

专业课冲啊

学习ing

weixin_46358740的博客 2907

考研专业课c语言与数据结构,南开大学816 C语言与数据结构2018考研专业课大纲...

南开大学816 C语言与数据结构2018考研专业课大纲2017-09-29 14:41|考研集训营南开大学2018考研专业课大纲已经公布,每个学校自专业课考试大纲及专业课考试内容不一样,小编会及时整理并推送各高校的2018考研专业课大纲的相关信息,以下是南开大学816 C语言与数据结构2018考研专业课大纲,供报考院校是该院校的研究生参考:南开大学软件学院包含083500软件工程、085212软件...

weixin_35750747的博客 1348

计算机网络实验一层二叉树,2016考研计算机冲刺考点梳理:二叉树算法(1)

2016考研冲刺交流群:172491689计算机考研专业课复习科目包括数据结构、操作系统、计算机组成原理、计算机网络四门课程。其中数据结构这一科目兼具理论与实践,要求同学们在复习过程中不仅要对教材的基本概念进行记忆,同时还要结合知识点掌握相应的实际操作知识。为帮助同学们在计算机专业课复习上卓有成效,中公考研将为同学们整理面的考点梳理,今天为大家带来的是数据结构的相关内容,请同学们适当参考,结合自身...

weixin_26765363的博客 251

2022大三计算机 | 保研面试 | 专业课(数据结构、计组等) 数学(离散等) | 资料整理

准备复习专业课和数学,每天会复习8个问题/知识点,大概6月底全部复习完。专业课:数据结构、计算机组成原理、操作系统、计算机网络、数据库、软件工程、汇编、编译、程序设计语言。数学:高数、线代、离散。借优快云罗列已整理的题目,便于对照自答.....................

111辄的博客 8063
上一篇: 专业课-数据结构(回文判断实验)
下一篇: 个人成长路线规划
folinggg
博客等级 码龄6年 20粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值