电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

选择结构实验报告

来源:文库作者:开心麻花2025-09-191

选择结构实验报告(精选7篇)

选择结构实验报告 第1篇

预习报告

实验项目:选择结构程序设计

实验日期:2012年3月26日

实验原理:利用 if 或switch 语句实现多分支选择结构程序设计

实验仪器:PC

实验内容及步骤:

内容:利用scanf函数读入变量x的值,利用if或switch 语句判断x所在的区间,并求函数在x 处的函数值

步骤:

1、程序设计:

(1)定义变量;(2)利用scanf给变量x赋值;(3)利用 if 或 switch 判断x所在范围执行相应计算,以求得函数在x 处的函数值;(4)输出相应函数值

2、输入程序、调试并运行通过。

实验报告

实验目的要求:抄写指导手册上相应章节的目的要求

实验环境:windows XPTC或 VC

实验内容:完整抄写P77页4.5小题

实验步骤:直接写代码

实验结果:根据实验题目自己输入相应值并观察程序输出结果

总结:主要写出自己在本次实验中的收获及不足

选择结构实验报告 第2篇

班号:

学号:

一、实验目得 (1)熟悉并掌握数据选择器得功能.(2)

用双 4 选 1 数据选择器 74LS153 设计出一个 16 选 1 得数据选择器。

(3)用双 4 选 1 数据选择器 74LS153 设计出一个全加法器。

二、实验设备 数字电路实验箱,74LS00,74LS153.三、实验内容(1)

测试双 4 选 1 数据选择器74LS153 得逻辑功能。

74LS153 含有两个 4 选 1 数据选择器,其中 与 为芯片得公共地址输入端,与 分别为芯片得公共电源端与接地端.Figure1 为其管脚图:

Figure 错误 错误!未定义书签。

未定义书签。

:路电接连图下按ﻩ Figure 错误 错误!未定义书签。

(2)设某一导弹发射控制机构有两名司令员 A、B 与两名操作员C、D,只有当两名司令员均同意发射导弹攻击目标且有操作员操作,则发射导弹 F.利用所给得实验仪器设计出一个符合上述要求得16选1数据选择器,并用数字电路实验箱上得小灯与开关组合表达实验结果。

思路 :

由于本实验需要有四个地址输入端来选中 16 个数据输入端得地址之中得一个,进而实现选择该数据输入端中得数据得功能,即 16选1。而公共得、两

个地址输入端与 使能端(用于片选,已达到分片工作得目得,进而扩展了一位输入)一共可以提供三个地址输入端,故需要采用降维得方法,将一个地址输入隐藏到一个数据输入端 中。本实验可以降一维,也可以降两位。由于两位比较复杂,本实验选择使用降一维得方式。

做法 :

:图诺卡得能功需所现实中题用应如出画ﻩ

00

01

11

10 00 01 0 0 0 0 0 0 1 0 11 0 0 1 0 10 0 0 1 0 将 D 降到数据输入端中。对应得卡诺图如下:

00

01

1 0 0 D 0 0 0 1 0 按上述卡诺图连接电路,用开关控制送给各输入高低电平。其中,“1”表示高电平,“0”表低电平,均由开关上下拨动来控制;A、B、C、D分别为题中得两个司令员得同意情况与两个操作员得操作情况;F 为导弹发射情况,将F接到小灯上即可。电路如 Figure 1 所示(图中 即,后面得图均为如此):

Figure 3

AB CD C AB

(3)用 74LS00与 74LS153 设计一位全加器,并用数字电路实验箱上得小灯与开关组合表达实验结果。

一位全加器得功能如下面两个卡诺图所示。其中 A、B 分别表示被加数与加数,CI 表示低位向本位得进位,S 表示运算结果,CO 表示向高位得进位。

CO: S:

00

经分析,此全加器有三个输入,而公共得、两个地址输入端与 使能端(用于片选,已达到分片工作得目得,进而扩展了一位输入)刚好一共可以提供三个地址输入端。故按上面得卡诺图,分析后应采用下面得端口解法:

按上面得接法连接电路。用开关控制送给各输入高低电平,“1“表示高电平,“0”表低电平,均由开关上下拨动来控制; 表示低位送进来得进位信号,A、B分别表示被加数与加数;S 与 分别表示加法结果与向高位得进位信号。电路如Figure 4 所示:

Figure 4 四、实验结果(1)

测试双 4 选 1 数据选择器74LS153 得逻辑功能:

:下如录记果结将,)亮灯小或(平电高示表”1“,)灭灯小或(平电低示表”0“用ﻩ

0

0 1 0

1 B A A B

1Q 0 0 0

0 0 1

0 1 0

0 1 10 0 0 1 0 1 0 1 1 0 0 1 1 1 0

2Q 0 0 0

0 0 1

0 1 0

0 1 1

1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0(2)

设计出一个符合题目要求得 16 选 1 数据选择器

:下如录记果结将,)亮灯小或(平电高示表”1“,)灭灯小或(平电低示表”0“用ﻩA B C D F 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1

1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1

。能功辑逻得出计设求要所足满以可路电此,得可表值真得面上由ﻩ(3)

设计一位全加器

:下如录记果结将,)亮灯小或(平电高示表“1“,)灭灯小或(平电低示表"0“用ﻩA B CI S CO 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

由上面得真值表可得,此电路可以满足所要求设计出得逻辑功能。

五、故障排除

在实验(1)中,发现所连接电路与预期得逻辑功能不一致.在检验了导线与小灯都正常后,发现将芯片得管脚接错了,误将 Q 与 接错地方。分析原因,就是由于芯片管脚设置得位置与管脚图上面不一致,两侧均有两个管脚接口.六、心得体会

连了道知中除排得障故在且并,计设得路电辑逻了握掌地好更我,验实次这过通ﻩ接时要瞧引脚上面得标号而不能一味地只认准位置。

高层建筑结构转换层结构选择 第3篇

一、多功能综合性高层建筑结构体系的特点

从建筑使用功能而言, 在设计中, 通常将大柱网的购物商场、餐厅、娱乐设施设于多功能综合性高层建筑的下层部分, 而将较小柱网、较小开间的住宅、公寓、旅馆、办公功能的建筑设于中、上层部分。这种建筑使用功能的特点相应决定了多功能综合性高层建筑结构体系的特点。由于不同建筑使用功能要求不同的空间划分布置, 相应地, 要求不同的结构形式, 如何将它们之间通过合理地转换过渡, 沿竖向组合在一起, 就成为多功能综合性高层建筑结构体系的关键技术。这对高层建筑结构设计提出了新的问题, 需要设置一种称为“转换层”的结构形式, 来完成上下不同柱网、不同开间、不同结构形式的转换。结构上的转换层概念, 主要是指在整个建筑结构体系中, 合理解决竖向结构的突变性转化和平面的连续性变化的结构单元体系。它在主要满足结构安全功能要求的同时, 多数情况下解决一些特殊技术性建筑功能要求。比如在结构转换层空间内布置管道、设备等等。这种转换层广泛应用于剪力墙结构及框架剪力墙等结构体系中。

二、转换层的类型及其工程实例

按照不同的结构转换功能, 转换层可分为三种类型:

1. 高层建筑上层与下层的结构形式不同, 通过转换层完成上层至下层的变化。

例如, 北京南洋饭店, 地面以上24层, 总高度为85m。第1~4层为框架结构, 第6层以上为剪力墙结构, 第5层为转换层, 剪力墙的托梁高度为4.5m, 底层柱最大直径为1.6m。

2. 高层建筑上层与下层的结构形式不变, 但通过转换层完成其从上层到下层不同柱网轴线布置的变化。

例如, 香港新鸿基中心, 51层, 总高度为178.6m, 筒中筒结构体系。1~4层为大空间商业用房, 5层以上为办公楼。外框筒柱距为2.4m, 为解决底层大柱网入口处上、下不同结构柱网轴线的转换, 采用截面尺寸为2.0m5.5m的预应力混凝土大梁, 将下层柱距扩大为16.8m和12m。

3. 通过转换层同时完成高层建筑上层与下层结构形式与柱网轴线布置的变化。

例如, 香港Harber Road Development大厦, 49层, 总高度为180m。上层为小柱距框筒结构, 通过预应力混凝土大梁的转换, 将下层柱距扩大为9.6m和12m。

三、内部结构采用的转换层结构形式

为实现高层建筑内部上、下层结构形式与柱网的变化, 可以用以下的结构转换形式。

1. 梁式转换。

由于它受力明确, 设计与施工简单, 一般用于上层为剪力墙结构, 下层为框架结构的转换。当纵、横向同时需要转换时, 可采用双向梁布置的转换方式。前述的北京南洋饭店, 就是采用梁式转换层。

2. 板式转换层。

当上、下柱网、轴线有较大错位, 不便用梁式转换层时, 可以采用板式转换方式。板的厚度一般很大, 以形成厚板式承台转换层。它的下层柱网可以灵活布置, 不必严格与上层结构对齐, 但板很厚, 自重很大, 材料用量很多。

3. 箱式转换层。

当需要从上层向更大跨度的下层进行转换时, 若采用梁式或板式转换层已不能解决问题, 这种情况下, 可以采用箱式转换层。它很像箱形基础, 也可看成是由上、下层较厚的楼板与单向托梁、双向托梁共同组成, 具有很大的整体空间刚度, 能够胜任较大跨度、较大空间、较大荷载的转换。

4. 桁架式转换层。

这种形式的转换层受力合理明确, 构造简单, 自重较轻, 材料节省, 能适应较大跨度的转换, 虽比箱式转换层的整体空间刚度相对较小, 但比箱式转换层少占空间。

5. 空腹桁架式转换层。

这种形式的转换层与桁架式转换层的优点相似, 但空腹桁架式转换层的杆系都是水平、垂直的, 而桁架式转换层则具有斜撑竿。

四、外围结构采用的转换层结构形式

前述转换层结构形式主要用于内部结构的上、下层转换。对于外围结构, 往往由于建筑功能的需要在底部扩大柱距, 一般采用梁式转换、桁架式转换、墙式转换、间接式转换、合柱式转换、拱式转换等。以下介绍两种形式的结构转换。

1. V形柱式结构转换。

重庆银星商城, 总建筑面积49800m2, 地上28层, 总高度101.2m, 为商住、商贸综合楼, 1~9层为商场, 基本柱网为7.80m7.80m及7.80m9.30m, 第10层为技术层及物业管理, 第11~26层为住宅, 第27层及第28层为电梯技术间及水箱间。由于上部住宅的柱网、轴线与下部商场不能完全重合, 对前述的转换层结构形式都不适合该工程的特点, 而且材料用量及造价均较高。后来在第9层与第10层利用两层空间设置了4根V形柱来完成结构转换。

在该设计中V形柱占据两层空间。其斜度为1/5.3, 在上面一层为两肢对称的斜柱, 到下面一层合成为实腹的倒梯形状, 双斜柱的截面积之和不小于下面倒梯形柱的截面积。在斜柱的顶部用拉梁互相联结, 同时在斜柱的外跨框架梁采取加腋措施。

2. 斜柱式结构转换。

沈阳华利广场大厦, 33层, 总高度115m, 框架-核心筒结构体系。7层以上用作写字间、公寓, 环绕圆形核筒设有16根走廊柱, 目的是为了减小呈辐射状平面布置的主梁的跨度, 并相应减小层高, 然而, 在7层以下, 这16根环状布置的柱对商场的布置是不需要的, 应予去除, 这就构成了上、下层结构转换的问题。

在设计中, 采用了斜柱双环转换结构。将转换层以上16根环状平面布置的竖直柱, 在两层楼高范围内, 一律向核心筒方向转折, 最终予核心筒相交。这16根斜柱内力的水平分量主要由核心筒外的圆环形楼板来承受。在斜柱顶部的楼层梁板出现环向拉力, 在斜柱底靠近核心筒的楼层梁板则出现环向压力。于是, 相应分别在斜柱顶与斜柱底设置了抗拉环梁与抗压环梁, 在设计中将环梁、楼板、斜柱顶主环梁的中心置于同一水平面上。

选择结构实验报告 第4篇

【关键词】教材整合; 教与学;能力培养;有效课堂

【中图分类号】G623.31 【文献标识码】B 【文章编号】2095-3089 (2012)02-0057-02

1 课题的提出

针对传统教学重知识的传授,轻能力的培养,重视教师的教,忽视学生的学,重教法、轻学法的特点和弊端,对于实践性极强的语言学科来说,实施传统教法无疑有碍于学生语言一种正确处理教与学关系的新途径,从课文教学人手,找准外语教学教法的最佳结合点,改变“重教轻学”的现象,摆正教师的位置和学生的地位,更充分地发挥教师的主导作用与学生主体作实践活动,限制了学生的言语活动量,不利于语言运用能力的培养,造成了教与学的严重失调。

课堂教学质量的提高,需要教与学双边的完美结合,需要教与学的有机协调,因此,保证教学双边的协调性与完整性是本实验的重点和焦点。由于课文教学为外语教学的主渠道,占据了课堂教学的大部分时间,因此,以改革英语课文教学为突破口,努力探索课文教学教与学的协调性为本课题研究的核心,旨在寻求用,以获得大面积提高教学质量的效果,进而达到培养学生的言语能力和自学能力的目的。

2 实验目的

从课文教学入手,找准外语教学教法与学法的最佳结合点,改变“重教轻学’的现象,正确处理教与学之间的关系,摆正教师的位置和学生的地位,更充分地发挥教师的主导作用和学生的主体作用,以获得大面积提高教学质量的效果,进而达到培养学生的言语能力和自学能力的目的。

3 实验原则与指导思想

3.1 坚持教师为主导、学生为主体的原则。 本原则要求在实验的整个过程中,必须坚持教师的示范作用。教师要根据教学大纲决定外语教学的指导思想、目的、内容、方法、进度和考核教学质量的方法,面向全体学生、针对不同程度的学生安排不同的训练内容,处理好教材中难点、知识之间的联系;学生应在教师的指导下,遵循学习和运用英语的心理认识规律,在掌握了一些语言知识和能力的基础上,应积极主动地自学,进行预习,基本上理解新知识和课文的内容,划出重点、难点、疑难问题,以便上课时重点听讲、质疑,进一步理解所学内容。在理解的基础上,要主动积极地进行听、说、读、写全面操练,变知识为自动化的熟练技巧并形成技能。

3.2 坚持外语教学与能力培养的指导思想。 本原则要求各种能力的培养应贯串外语教与学的始终。外语学习方法论认为,外语学习应分为呈现、实践、迁移三个阶段。呈现阶段是认识和熟悉课文,给学生提供外语素材及外语经验的阶段;实践阶段是逐渐缩小控制以进入交际的阶段,包括控制套用,类推使用和整理创新三步。无论是语言学家H.帕默、w.里弗斯、J.佩克还是w.斯威特对外语学习持有不同的观点和看法,但都认为其与各种能力的培养具有密切的关系。毫无疑问,应坚持外语教学中模仿力,观察力、想象力、类比力、概括力、逻辑思维和分析力、归纳——演绎力、综合力和创造力的培养同时注重能力培养的阶段性。

4 实验步骤与内容

学生学习和运用英语的心理认识过程有三个层次:了解、操练和运用。了解是指理解所学语言知识及其规律和机械地记忆套用语言知识。操练是指有意义的听、说、读、写言语操练,并通过操练培养听、说、读、写技能。运用是指灵活运用所学语言知识进行听、说、读、写言语交际活动。

从哲学的观点来看,教师的教是外因,学生的学是内因,外因要通过内因起作用。我们高九七级三位外语教师遵循外语教育规律和学生学习和运用英语的心理认识规律,从课文教学改革人手,改变原有的教学程序和方法,将课文教学分为词汇学习,课文处理和检测验收三部分,用十个课时的时间完成从知识的识记、知识的运用到技能的形成的教学全过程。步骤如下:

4.1 教学过程划分

第一部分词汇学习

本步骤重点解决词的音、形、义、性及用法。课时一,在语音室上,要求学生掌握词的拼读,并做到发音准确,书写合格。采取学生预读、听录音仿读,同学领读、教师

教读,全班齐读,个别朗读和结合课文读单词的方式,将加大读词的密度和强度,加强对词形的意识。单一要求实施多种形式的教学手段必将活跃课堂气氛,激发学习兴趣。课时二和课时三,要求学生着重掌握词的义、性及用法并加强自学能力的培养。教师提供教案(材料)给学生。学生自学为主,教师指导学习为辅,识记、理解和初步运用重点词、短语、句型、词语比较等语言知识,同时做好重点语言知识运用的准备工作,如(菲)控制性造句,上下文的填空,释义等,规定先做在“预习本”上。

第二部分课文处理

本步骤着重处理课文内容及语言点的理解、归纳和运用。课时四,学生略读课文,完成“目标检测题,和所提供的阅读理解题,师生讨论,老师评讲以获取学生理解课文程度的信息。课时五,学生细读课文,将重点句、难句(一般是复合句)的分析(用英语表述)、翻泽及改写做在预习本上。以学生先宣讲,老师后讲评的方式共同排除阅读中又一障碍——语句结构的理解。课时六,答疑课。疑难问题由以小组为单位用书面的形式课前呈交和当堂提出的两部分组成。课时七,学生精读课文,对课文进行归纳、总结。写出主题句、段意和中心思想,就课文进行答问。将课文复述、改写、缩写或命题书面表达做在预习本上。

第三部分检测验收

本步骤通过各种检测手段加强对学生进行听、说、渎、写能力的培养。课时八,复述课文,听写短文,完成就词汇、课文内容的测试题。课时九和课时十,评讲“课课练”高考模拟试题(讲评前得用两节辅导的时间完成此卷,送微机室统一评分,成绩保存)。

说明:

l、老师需要提供一份全课的教案材料,内容包括本课重点词和短语的用法举例和比较;一份有关词汇和课文的检测题:一套“课课练”高考模拟试题。

2、学生需要一个“预习本”,学完一课检查一次。

3、针对某一问题布置课文后的练习题。

4、学生将获得三个半课时的自学时间,能改变老师占用舍登时间、“满堂灌”的局面,为学生自学能力的培养提供条件。

4.2 教学程序划分。

课文教学教与学程序三段示意图

(按照外语学习分段说、学生心理认识过程和师生参与顺序)

5 实验对象和时间

实验班和对比班均由高97级六个平行班共328人组成,采用单组实验法进行纵向比较,将从第六课后“课课练”考试成绩与第六课前的某些“课课练”考试进行对比。由于考题出自于同一本资料,其难度系数的一致性可保证比较的可靠性。

實验时间:第一阶段(准备阶段)(1995年12月),收集高一册第一课到高二册第五课的“课课练”考试成绩,进行第二次“自学能力”现状的“民意测验”。

第二阶段,(实验和调查阶段)1996年1月一1996年6月),进行课题实验,收集各种资料和考试成绩,进行第二次“自学能力”现状的“民意测验”。

第三阶段(实验和分析总结阶段)(1996年7月一1996年9月)实验的分析和总结,写出实验报告、经验总结或课堂实录。

6 制度管理

本实验得到校方的大方支持。由本年级的三位外语教师(林安学、郭宗玉、于天伟)共同承担和组织课题实验,共同商讨教案,轮流撰写,随时研讨存在的问题和研究解决问题的措施和对策,定期检测。成绩、资料由郭宗玉老师管理;学生的“预习本”定期检查,统一保管。

7 实验效果

1997年6月,荣昌县分管局长、教研室、全县高中年级大部分兄弟学校的英语教师、荣昌中学外语组组员及校领导对本课题实验进行验收评定,现场听了由林安学在高九七级一班主讲的“检测验收’部分的一堂课,课后听取了就此实验所做的汇报和总结。让学生填写了调查问卷、查阅、统计、分析与实验有关的各种资料、数据、展开了充分的实事求是的评论。大家一致认为。该实验在课文教学中如何正确处理教与学双边关系及对学生的能力培养等方面取得了良好的教学效果,具有很强的可行性、推广性的特点。

测定选择反应时实验报告 第5篇

1、计算左右手及两手的平均选择反应时。

左右手平均选择反应时 左手

右手

双手

2、试分析选择反应时是否受左右手的影响? 姓

数据结构实验报告 第6篇

电子文档命名为“学号+姓名”,如:E01214058宋思怡

《数据结构》实验报告

(一)学号:姓名:专业年级:

实验名称:线性表

实验日期:2014年4月14日

实验目的:

1、熟悉线性表的定义及其顺序和链式存储结构;

2、熟练掌握线性表在顺序存储结构上实现基本操作的方法;

3、熟练掌握在各种链表结构中实现线性表基本操作的方法;

4、掌握用 C/C++语言调试程序的基本方法。

实验内容:

一、编写程序实现顺序表的各种基本运算,并在此基础上设计一个主程序完成如下功能:

(1)初始化顺序表L;

(2)依次在L尾部插入元素-1,21,13,24,8;

(3)输出顺序表L;

(4)输出顺序表L长度;

(5)判断顺序表L是否为空;

(6)输出顺序表L的第3个元素;

(7)输出元素24的位置;

(8)在L的第4个元素前插入元素0;

(9)输出顺序表L;

(10)删除L的第5个元素;

(11)输出顺序表L。

源代码

调试分析(给出运行结果界面)

二、编写程序实现单链表的各种基本运算,并在此基础上设计一个主程序完成如下功能:

„„„„

„„„„

小结或讨论:

(1)实验中遇到的问题和解决方法

(2)实验中没有解决的问题

数据结构实验报告 第7篇

一. 题目要求

1)编程实现二叉排序树,包括生成、插入,删除; 2)对二叉排序树进行先根、中根、和后根非递归遍历;

3)每次对树的修改操作和遍历操作的显示结果都需要在屏幕上用树的形状表示出来。4)分别用二叉排序树和数组去存储一个班(50人以上)的成员信息(至少包括学号、姓名、成绩3项),对比查找效率,并说明在什么情况下二叉排序树效率高,为什么? 二. 解决方案

对于前三个题目要求,我们用一个程序实现代码如下 #include #include #include #include “Stack.h”//栈的头文件,没有用上

typedefintElemType;

//数据类型 typedefint Status;

//返回值类型 //定义二叉树结构 typedefstructBiTNode{ ElemType

data;

structBiTNode *lChild, *rChild;//左右子树域 }BiTNode, *BiTree;intInsertBST(BiTree&T,int key){//插入二叉树函数

if(T==NULL){

T =(BiTree)malloc(sizeof(BiTNode));

T->data=key;

T->lChild=T->rChild=NULL;

return 1;} else if(keydata){ InsertBST(T->lChild,key);} else if(key>T->data){

InsertBST(T->rChild,key);} else

return 0;} BiTreeCreateBST(int a[],int n){//创建二叉树函数 BiTreebst=NULL;inti=0;while(i

//数据域

InsertBST(bst,a[i]);

i++;} returnbst;} int Delete(BiTree&T)

{

BiTreeq,s;

} if(!(T)->rChild){ //右子树为空重接它的左子树

q=T;T=(T)->lChild;free(q);}else{

if(!(T)->lChild){ //若左子树空则重新接它的右子树

q=T;T=(T)->rChild;}else{ q=T;s=(T)->lChild;while(s->rChild){

q=s;s=s->rChild;}

(T)->data=s->data;//s指向被删除结点的前驱

if(q!=T)

q->rChild=s->lChild;

else

q->lChild=s->lChild;

free(s);} } return 1;

//删除函数,在T中删除key元素 intDeleteBST(BiTree&T,int key){ if(!T)return 0;else{

if(key==(T)->data)return Delete(T);

else{

if(key<(T)->data)

returnDeleteBST(T->lChild,key);

else

returnDeleteBST(T->rChild,key);

} } } intPosttreeDepth(BiTree T){//求深度

inthr,hl,max;if(!T==NULL){ hl=PosttreeDepth(T->lChild);hr=PosttreeDepth(T->rChild);max=hl>hr?hl:hr;return max+1;} else

return 0;

} void printtree(BiTreeT,intnlayer){//打印二叉树 if(T==NULL)return;printtree(T->rChild,nlayer+1);for(inti=0;i

”);} printf(“%dn”,T->data);printtree(T->lChild,nlayer+1);} void PreOrderNoRec(BiTree root)//先序非递归遍历 { BiTree p=root;BiTreestack[50];intnum=0;while(NULL!=p||num>0){

while(NULL!=p)

{

printf(“%d ”,p->data);

stack[num++]=p;

p=p->lChild;

}

num--;

p=stack[num];

p=p->rChild;} printf(“n”);} void InOrderNoRec(BiTree root)//中序非递归遍历 { BiTree p=root;

} intnum=0;BiTreestack[50];while(NULL!=p||num>0){ while(NULL!=p){

stack[num++]=p;

p=p->lChild;} num--;p=stack[num];printf(“%d ”,p->data);p=p->rChild;} printf(“n”);void PostOrderNoRec(BiTree root)//后序非递归遍历 { BiTree p=root;BiTreestack[50];intnum=0;BiTreehave_visited=NULL;

while(NULL!=p||num>0){

while(NULL!=p)

{

stack[num++]=p;

p=p->lChild;

}

p=stack[num-1];

if(NULL==p->rChild||have_visited==p->rChild)

{

printf(“%d ”,p->data);

num--;

have_visited=p;

p=NULL;

}

else

{

p=p->rChild;

} } printf(“n”);}

int main(){//主函数

printf(“

---------------------二叉排序树的实现-------------------”);printf(“n”);int layer;inti;intnum;printf(“输入节点个数:”);scanf(“%d”,&num);printf(“依次输入这些整数(要不相等)”);int *arr=(int*)malloc(num*sizeof(int));for(i=0;i

scanf(“%d”,arr+i);} BiTreebst=CreateBST(arr,num);printf(“n”);printf(“二叉树创建成功!”);printf(“n”);layer=PosttreeDepth(bst);printf(“树状图为:n”);printtree(bst,layer);int j;int T;int K;for(;;){ loop: printf(“n”);printf(“

***********************按提示输入操作符************************:”);printf(“n”);printf(“

1:插入节点

2:删除节点

3:打印二叉树

4:非递归遍历二叉树

5:退出”);scanf(“%d”,&j);

switch(j){

case 1:

printf(“输入要插入的节点:”);

scanf(“%d”,&T);

InsertBST(bst,T);

printf(“插入成功!”);printf(“树状图为:n”);

printtree(bst,layer);

break;

case 2:

}

printf(“输入要删除的节点”);scanf(“%d”,&K);DeleteBST(bst,K);printf(“删除成功!”);printf(“树状图为:n”);printtree(bst,layer);break;case 3: layer=PosttreeDepth(bst);printtree(bst,layer);break;case 4:

printf(“非递归遍历二叉树”);printf(“先序遍历:n”);PreOrderNoRec(bst);printf(“中序遍历:n”);InOrderNoRec(bst);

printf(“后序遍历:n”);

PostOrderNoRec(bst);

printf(“树状图为:n”);

printtree(bst,layer);

break;case 5:

printf(“程序执行完毕!”);

return 0;} goto loop;} return 0;对于第四小问,要储存学生的三个信息,需要把上面程序修改一下,二叉树结构变为 typedefintElemType;

//数据类型 typedefstring SlemType;

typedefint Status;

//返回值类型 //定义二叉树结构 typedefstructBiTNode{ SlemType name;ElemType score;ElemType no;

//数据域 structBiTNode *lChild, *rChild;//左右子树域 }BiTNode, *BiTree;参数不是key,而是另外三个

intInsertBST(BiTree&T,intno,intscore,string name){//插入二叉树函数

if(T==NULL){

T =(BiTree)malloc(sizeof(BiTNode));

T->no=no;T->name=name;T->score=score;

T->lChild=T->rChild=NULL;

return 1;} else if(nono){ InsertBST(T->lChild,no,score,name);} else if(key>T->data){

InsertBST(T->rChild,no,score,name);} else

return 0;} 其他含参函数也类似 即可完成50个信息存储

用数组存储50个信息,查看以往代码

#include #include using namespace std;class student{ private: intnum;string name;int ob1;int ob2;intara;public: void set(inta,stringb,intc,int d);void show();int average();};void student ::set(inta,stringb,intc,int d){ num=a;name=b;ob1=c;ob2=d;ara=(c+d)/2;} void student::show(){ cout<<“学号:”<int main(){ cout<<“ 欢迎来到学生管理系统”<>numlock;switch(numlock){ case 0: cout<<“输入想查询的学号”<>i;if(i==j){ cout<<“该学号信息已被删除”<>j;delete[j]ptr;cout<<“删除成功”<>k;if(k!=j){

cout<<“该学号信息已经存在,添加失败”<

break;} cout<<“重新输入添加的学号”<>q;cout<<“输入姓名”<>w;cout<<“输入科目一的成绩”<>e;cout<<“输入科目二的成绩”<>r;ptr[k].set(q,w,e,r);break;case 3: for(m=1;m<20;m++){

for(int n=m+1;n<20;n++){

if(ptr[m].average()

student a;

a=ptr[m];

ptr[m]=ptr[n];

ptr[n]=a;

}}

ptr[m].show();} break;case 4: cout<<“谢谢使用”<

二叉排序树储存数据界面(储存学生信息略)

创建二叉树:

插入节点:

删除节点:

非递归遍历:

退出:

数组储存学生信息界面

分析查找效率:

因为二叉树查找要创建二叉树,而数组查找只创建一个数组,二叉树的创建时间比较长,所以对于数据量较少的情况下数组的查找效率比较高。但当数据量增加时,二叉树的查找优势就显现出来。所以数据量越大的时候,二叉树的查找效率越高。

四. 总结与改进

这个实验工作量还是很大的,做了很久。树状图形输出还是不美观,还需要改进。

一开始打算用栈实现非递归,但是根据书里面的伪代码发现部分是在C++编译器里运行不了的(即使补充了头文件和数据的定义),所以之后参考了网上的数组非递归,发现其功能和栈相似。

递归遍历的实现比非递归的遍历真的简单很多。

选择结构实验报告

选择结构实验报告(精选7篇)选择结构实验报告 第1篇预习报告实验项目:选择结构程序设计实验日期:2012年3月26日实验原理:利用 if 或s...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部