预备实验一实验报告
- 格式:doc
- 大小:298.00 KB
- 文档页数:7
化学实验预习报告第一篇:化学实验预习报告工科化学实验预习报告实验题目:三草酸合铁酸钾的制备实验目的:1、熟悉络合物的基本知识2、掌握合成K3[Fe(C2O4)3]·3H2O的基本原理和操作技术实验原理:实验以硫酸亚铁铵为原料,与草酸在酸性溶液中先制得草酸亚铁沉淀,然后再用草酸亚铁在草酸钾和草酸的存在下,以过氧化氢为氧化剂,得到铁(Ⅲ)草酸配合物,主要反应为:(NH4)2Fe(SO4)2 + H2C2O4 + 2H2O=FeC2O4·2H2O↓+(NH4)2SO4 + H2SO42FeC2O4·2H2O + H2O2 + 3K2C2O4 + H2C2O4=2K3[Fe(C2O4)3]·3H2O实验仪器及试剂:电子天平,抽滤装置,烧杯,酒精灯,水浴装置,表面皿。
(NH4)2Fe(SO4)2⋅6H2O,H2C2O4⋅2H2O,H2SO4(2 mol/L),饱和K2C2O4溶液,乙醇(95%),H2O2(3%)实验步骤:1、草酸亚铁的制备称取适量硫酸亚铁铵固体放在烧杯中,然后加适量蒸馏水和H2SO4,加热溶解后,再加入一定量草酸溶液,加热搅拌至沸,然后迅速搅拌片刻,防止飞溅。
停止加热,静置。
待黄色晶体FeC2O4·2H2O沉淀后倾析,弃去上层清液,加入适量蒸馏水洗涤晶体,搅拌并温热,静置,弃去上层清液,即得黄色晶体草酸亚铁。
2、三草酸合铁(III)酸钾的制备往草酸亚铁沉淀中,加入饱和K2C2O4溶液,313K下水浴加热,恒温下慢慢滴加H2O2溶液,沉淀转为深棕色,加热溶液至沸以去除过量的H2O2,静置一会。
然后加入草酸溶液(沉淀溶解,溶液变为翠绿色),溶液的pH值保持在4~5,加入95%的乙醇,混匀后冷却,可以看到烧杯底部有晶体析出(翠绿色)。
晶体完全析出后,抽滤,用乙醇淋洒滤饼,抽干混合液。
固体产品置于一表面皿上,置暗处晾干。
称重,计算产率。
注意事项:三草酸合铁(III)酸钾为翠绿色单斜晶体。
预备实验的内容总结在这一次的实验里,我们学到了很多知识。
比如,种子发芽实验,看着那些小绿芽从土里探出脑袋来,还真以为它们会茁壮成长。
第二个实验呢,就是植物生长情况观察和调查了,看着那些刚冒出来的小苗,不禁使我想起了妈妈曾经告诉过我的一句话:只要你坚持去做好每件事,无论是什么困难都能克服。
果然,任何事只要你认真做了,做好了,你总会有收获的。
其中,印象最深刻的就是“花儿绽放”的实验了。
上课的前一天,我非常紧张,生怕自己做不好。
但是当老师带领我们用放大镜观察花蕊的时候,我的心一下子平静下来了。
因为这朵花跟书上说的完全一样,我激动得跳了起来,同时心里也充满了疑惑:既然这么清晰,那是怎么拍出来的呢?于是,我拿出手机百度了一下,原来是因为花蕊太小了,所以放大了才能看得更清楚。
我们用放大镜再仔细看一下,还真的像老师说的那样。
我觉得最重要的是,我通过做实验懂得了要做好一件事,要善于观察,勤于思考,才能把事情做好。
在做实验的过程中,我可能会遇到一些问题,如果遇到这些问题,我应该先冷静地分析一下问题的原因,寻找问题的关键,再一步一步地解决问题。
最后,把解决方案写下来,或许就能更快地解决这个问题了。
虽然预备实验很短暂,但是却让我受益匪浅。
每次上课,我们总会遇到各种各样的问题。
例如:我们可能会出现忘记带工具、试管破裂等等问题,有时候甚至连小助手们都没有办法,可是有了这一次的经历,我们就不怕了。
有些同学可能会觉得,实验是挺简单的,但是要去动手做一做,有时候又会觉得很困难,甚至想要放弃。
我想说,不管做什么事,如果没有付出努力,都不可能取得好成绩。
只有认真思考,认真对待,认真准备,才能做好一件事。
有时候,我觉得自己挺失败的。
因为我一直在“享受”着别人的劳动成果。
在实验开始之前,我从没有认真准备过一次。
如果我能够认真准备一次,我们的实验就不会出现这么多问题了。
所以,如果你也想要做好一件事,必须得要认真准备,认真去做。
如果你很随意地去对待它,即使别人不怪你,你自己心里也会过意不去。
一、实验背景随着科学技术的飞速发展,实验室成为了科学研究和技术创新的重要阵地。
为了提高我国高等教育的实践教学质量,许多高校都开设了预实习课程,旨在让学生提前接触实验室环境,了解科研工作流程,培养学生的实践能力和创新精神。
本报告将对我校化学与材料学院预实习课程中的实验部分进行总结和分析。
二、实验目的1. 了解实验室的基本操作规程和安全规范。
2. 掌握实验仪器的使用方法和操作技巧。
3. 学习实验数据的处理和分析方法。
4. 培养严谨的实验态度和团队合作精神。
三、实验内容本次预实习实验共分为三个部分:无机化学实验、有机化学实验和物理化学实验。
(一)无机化学实验1. 实验名称:溶液的配制2. 实验目的:学习溶液的配制方法,掌握物质的量浓度、质量分数等基本概念。
3. 实验原理:根据物质的量浓度计算所需溶质的质量或体积,再通过称量或量取配制一定浓度的溶液。
4. 实验步骤:(1)计算所需溶质的质量或体积;(2)称量或量取溶质;(3)将溶质溶解于溶剂中;(4)转移溶液至容量瓶中,定容至刻度线;(5)摇匀溶液。
(二)有机化学实验1. 实验名称:苯甲酸的制备2. 实验目的:学习有机合成实验的基本操作,掌握苯甲酸的制备方法。
3. 实验原理:利用苯甲酸的酰基化合物与水反应,生成苯甲酸和相应的酸。
4. 实验步骤:(1)称量苯甲酰氯和催化剂;(2)将苯甲酰氯溶解于溶剂中;(3)加入催化剂,混合均匀;(4)反应一段时间后,冷却溶液;(5)过滤、洗涤、干燥,得到苯甲酸。
(三)物理化学实验1. 实验名称:电导率的测定2. 实验目的:学习电导率的测定方法,掌握电导率与溶液浓度、温度等的关系。
3. 实验原理:利用电导率仪测定溶液的电导率,根据电导率计算溶液的离子浓度。
4. 实验步骤:(1)将待测溶液注入电导率池;(2)打开电导率仪,设定测量条件;(3)读取电导率值;(4)根据电导率值计算溶液的离子浓度。
四、实验结果与分析1. 无机化学实验:通过配制不同浓度的溶液,验证了物质的量浓度、质量分数等基本概念的正确性,掌握了溶液的配制方法。
一、实验名称探究植物光合作用的条件二、实验目的1. 了解光合作用的基本原理和过程。
2. 掌握光合作用实验的基本操作技能。
3. 分析光合作用受光照、二氧化碳、水分等因素的影响。
三、实验原理光合作用是植物利用光能将二氧化碳和水转化为有机物和氧气的过程。
其基本原理如下:(1)光能被植物叶绿素吸收,激发电子传递链,产生ATP和NADPH。
(2)ATP和NADPH为暗反应提供能量,使二氧化碳和水转化为有机物。
(3)有机物在植物体内储存,供植物生长、发育和繁殖之用。
四、实验器材与试剂1. 实验器材:植物叶片、烧杯、酒精灯、剪刀、镊子、滴管、试管、白纸、尺子、剪刀、放大镜等。
2. 实验试剂:二氧化碳溶液、蒸馏水、碘液、NaOH溶液等。
五、实验步骤1. 将植物叶片用剪刀剪成小块,放入烧杯中。
2. 用酒精灯加热烧杯,使叶片失水,观察叶片变化。
3. 用滴管向叶片上滴加二氧化碳溶液,观察叶片变化。
4. 用滴管向叶片上滴加蒸馏水,观察叶片变化。
5. 将叶片置于光照条件下,观察叶片变化。
6. 用放大镜观察叶片的气孔结构。
六、实验数据记录与分析1. 实验过程中,观察叶片失水、滴加二氧化碳溶液、滴加蒸馏水、光照条件下的变化,并记录数据。
2. 分析实验数据,得出以下结论:(1)叶片失水后,叶片变得干燥,颜色变深。
(2)滴加二氧化碳溶液后,叶片恢复绿色,颜色变浅。
(3)滴加蒸馏水后,叶片仍保持干燥,颜色无变化。
(4)在光照条件下,叶片颜色变浅,表明光合作用进行。
(5)放大镜观察叶片气孔结构,发现气孔数量和大小与光合作用有关。
七、实验心得通过本次实验,我对光合作用的基本原理和过程有了更深入的了解。
在实验过程中,我学会了如何操作实验器材,掌握了实验数据记录和分析方法。
同时,我认识到光合作用受光照、二氧化碳、水分等因素的影响,这对于理解植物生长和发育具有重要意义。
八、实验改进建议1. 在实验过程中,可适当增加实验次数,以提高实验数据的准确性。
预备实验的内容总结实验课是化学课的一部分,对于一些预备实验,我认为有必要总结一下,好让同学们在预习中更加轻松,但也不能忽视正式实验。
第一个我们用了很多器材做到:过氧化氢、硫酸铜溶液、熟石灰水等,也就是通常所说的1: 2: 6的实验,现象也非常明显:过氧化氢在空气中分解放出氧气;熟石灰遇到水发生化学反应变成氢氧化钙,变浑浊;硫酸铜溶液在二氧化碳中,有白色絮状沉淀产生;用湿润的红色石蕊试纸蘸取硫酸铜溶液滴到水里时,有砖红色沉淀产生。
注意:对照实验前必须将每组实验器材准备齐全。
有人会说这样好浪费时间啊!但我想提醒大家,虽然是预备实验,也需要做得仔细。
而且可以将老师多讲的东西减少,留给学生更多的思考时间。
所以,还是仔细吧!1、观察实验现象,得出相关结论。
2、观察并记录实验现象,并回答问题。
3、观察并讨论实验现象和结论。
4、总结实验方法。
5、进行交流。
三种结论:一是:产生砖红色沉淀是由于它溶于水,能与水反应生成氢氧化铜。
(原因);二是:沉淀能使湿润的红色石蕊试纸变蓝,但不能使紫色石蕊试纸变蓝。
(原因);三是:石蕊试液遇酸性或碱性物质都不变色,不能确定溶液是否是酸性或碱性。
最后可以总结一下该实验步骤。
硫酸铜溶液的量取:准确称取一定量的硫酸铜溶于足量水中,溶液混合均匀即可。
向溶液中滴入几滴稀盐酸,将溶液变为浅绿色。
澄清石灰水的制备:用蒸馏水,量取二倍体积的蒸馏水加入烧杯,加入一小撮熟石灰,使溶液呈粉红色。
硫酸铜溶液的浓度: 1: 2(质量比)硫酸铜溶液的配制:取足量的熟石灰,按照溶液的体积比将适量的水加入石灰乳中。
石蕊试液的制备:取适量的水溶液,加入足量的紫色石蕊溶液,即得到颜色为蓝色的石蕊溶液。
蒸馏水的用量:取适量的蒸馏水,加入足量的熟石灰乳(注意是熟石灰),搅拌使其充分溶解即可。
注意:分析实验现象时,最重要的是分析实验步骤,因为不同的实验步骤,导致结果不同,像这个预备实验,虽然只做了硫酸铜溶液、熟石灰水两个步骤,却得到了三种结论,可见,这个实验很值得大家认真地去做。
预备实验的内容总结一,实验目的:通过学习和研究电路的简单规律。
二,实验原理:电路中有电源、电流表、灯泡和开关等器材。
三,实验器材:电源、导线若干,电池、小灯泡各一只,开关、小电珠、小木棒、尖嘴钳各一把,铜片、焊锡丝、回形针、白纸、橡皮筋、铅笔、电池盒、小木块、硬币、图钉各一个,直尺一把,塑料饮料瓶一个,泡沫若干,小车模型一个,塑料管若干。
四,实验步骤及内容: 1,将电池盒里面的铜片取下,用胶布包好,分别接到两根导线上,合上开关,用导线分别去点亮灯泡和电池,再将导线连接好; 2,点亮电池和小灯泡后,找到其中一条导线,分别接入电池盒里的铜片的另一端,打开开关,看灯泡会不会发光; 3,如果不能发光,则重新连接,检查连接情况是否正确; 4,继续重复上述步骤,用导线分别去点亮灯泡和电池,然后断开导线,仔细观察小灯泡是否能够发光,最后将导线连接好,小灯泡就会发光了。
5,通过这次实验,我总结出了如下几点: 1,在连接电路时,首先要认真阅读说明书,并且遵守实验室规则,按照操作程序进行操作,不得乱动,乱摸;这是怎么回事呢?同学们对此产生了疑问,接下来我们对实验结论做出科学合理的解释吧!1、这次的实验让我了解了电路中为什么要有电流。
通过实验可以发现,导体之间存在着相互吸引力,当导体中有电流通过时,导体周围就产生了一个磁场,当这个磁场和电流方向相反时,就产生了电流。
所以,通电的导体会带上电。
2、在这个实验中,我知道了电流是由电子流动形成的,所以导体周围就形成了电流。
而电子在电流的推动下会快速地向前运动,因此形成了“电流”。
3、这个实验还告诉我们电路中电流的方向是从电源的正极出发,经过导线,回到电源的负极。
而导体中有电流通过时,会形成磁场,这个磁场和电流方向相反时,也会产生电流。
通过实验我们得出结论:电流从电源的正极出发,经过导线,再回到电源的负极。
2、在开始实验之前,老师还给我们讲了很多注意事项,比如要把手洗干净,不要带金属或尖锐的东西到实验室里来,以免损坏仪器和人身安全。
牙体预备实验报告一、实验目的通过此实验,我们将学习和掌握牙体预备的基本理论知识和操作技能,了解牙体预备对于修复体的稳定性和美观性的影响,为临床牙体修复提供基础知识与技能。
二、实验原理牙体预备是一种在牙体表面刻除一定的牙体组织以便保留修复体的固位、美观等目的的操作。
牙体预备的目标是实现牙体修复体与牙体之间的紧密适合。
通常需要考虑以下几个要点:1. 牙体预备的形状:根据不同的修复方式,选择不同的牙体预备形状,如冠状牙体预备、试冠预备、负锥形牙体预备等。
2. 牙体预备的范围:需要根据修复体的精确适合度、牙体的健康状况和牙髓的安全性等综合因素来确定牙体预备的范围。
3. 牙体预备的深度:牙体预备的深度应适当,既可以保留足够的牙体组织以提供修复体的稳定性,又要避免损伤牙髓组织。
三、实验器材和试剂1. 牙体预备刀2. 牙体操作盘3. 牙体模拟齿4. 牙体预备模型5. 牙体预备指示剂6. 牙体修复体材料四、实验步骤1. 熟悉实验器材和试剂。
2. 准备工作:清洁牙体模拟齿和牙体操作盘,并将牙体操作盘固定在实验台上。
准备好牙体预备刀、牙体模拟齿以及所需的牙体预备指示剂和修复体材料。
3. 进行牙体预备模拟:将牙体模拟齿固定在实验台上,使用牙体预备刀按照设计好的形状和范围对牙体模拟齿进行切削,依次按照要求进行冠状牙体预备、试冠预备或负锥形牙体预备。
切削过程中,需要注意保持适当的牙体预备深度和切削角度,避免切割过深或过浅。
4. 检查牙体预备质量:切削完毕后,使用牙体预备指示剂沾湿牙体预备表面,在牙体模拟齿上检查牙体预备质量。
指示剂会在不适合的地方留下颜色,帮助我们进行调整和改善。
5. 进行修复体的试戴:将预备好的模拟修复体材料(如试冠)放置在牙体模拟齿上,检查修复体与牙体的适合度和固位情况,调整修复体的形状和尺寸以确保完美适合。
6. 清理工作:完成实验后,仔细清理实验器材和试剂,保持实验室的整洁。
五、实验结果与分析通过本次实验,我们成功进行了牙体预备模拟,切削出了符合要求、形状适宜的牙体预备表面。
预备实验报告怎么写前言预备实验报告是进行科学研究或实验前准备工作的一种记录和总结。
通过撰写预备实验报告,可以帮助研究人员明确研究目的、确定实验方案、提前解决可能遇到的问题,以确保实验能够顺利进行和取得预期结果。
本文将介绍预备实验报告的基本结构、内容要点和撰写要求,帮助读者在实验前做好充分准备。
一、实验目的实验目的是预备实验报告的核心部分,明确了实验的目标和意义。
在本部分中,应该简要概述实验的背景和意义,以及要解决的具体问题。
同时,明确实验的终极目标,即要达到的预期结果,可以是验证某个假设、探究某个现象的原因等。
在进行实验前,必须明确实验目的,以便有条不紊地进行后续工作。
二、实验方法实验方法是预备实验报告的核心内容之一,它描述了进行实验的具体步骤和操作流程。
在本部分中,应该详细说明实验所需的材料和设备,并提供操作步骤和实验流程图。
确保实验步骤清晰明了,方便其他人员能够按照报告中的描述进行实验操作。
此外,还应提供实验所需的相关资料、文献和数据,以便了解相关背景和进行参考。
三、预期结果预期结果是预备实验报告中重要的一部分,它描述了实验的预期结果和预期效果。
在本部分中,应该明确指出实验的预期结果,可能包括对照组和实验组的对比分析、数据统计和图表展示等。
同时,还需要考虑实验可能出现的异常情况和可能存在的偏差,以便在实验过程中及时调整实验方案和解决问题。
通过对预期结果的描述,可以更好地指导实验的进行,并提前进行实验效果的评估和预判。
四、风险评估风险评估是预备实验报告中必不可少的一部分,通过评估实验可能出现的风险和安全隐患,可以采取相应的防范措施和应急预案。
在本部分中,应该列出可能存在的风险和安全问题,并提供相应的预防和处理方法。
例如,可能出现的化学品泄漏、设备故障、工作人员受伤等情况,应提前制定相应的应对方案,并明确责任和分工。
预先评估和解决实验中的风险可以保证实验的安全进行,确保人员的安全和实验设备的正常运行。
第1篇一、实验目的本次实验旨在通过预实验,验证实验方案的科学性和可行性,为正式实验提供数据支持。
通过本次实验,了解实验原理,掌握实验步骤,熟悉实验操作,为后续实验打下坚实基础。
二、实验原理本实验以化学合成反应为基础,通过反应物的选择、反应条件的控制以及产物的分离纯化,合成具有一定应用价值的化合物。
实验过程中,需遵循化学实验的基本原则,如安全、环保、精确等。
三、实验药品及器材1. 药品:- 反应物:A(固体)、B(液体)、C(固体)- 催化剂:D(固体)- 纯化试剂:E(液体)2. 器材:- 烧杯、试管、锥形瓶、冷凝管、滴定管、移液管、漏斗、布氏漏斗、抽滤瓶、干燥器、电子天平、恒温水浴锅、磁力搅拌器、电热套等。
四、实验装置(图)(此处插入实验装置图,包括反应器、冷凝管、加热装置等)五、实验步骤及现象1. 准备反应物:称取A、C固体,加入烧杯中,加入适量E液体溶解。
2. 加入催化剂:向烧杯中加入D固体,搅拌均匀。
3. 加热反应:将烧杯置于恒温水浴锅中,加热至一定温度,保持一段时间。
4. 观察现象:在反应过程中,溶液逐渐变为深蓝色,并有气泡产生。
5. 停止加热:反应完成后,停止加热,待溶液冷却。
6. 分离纯化:将反应液倒入锥形瓶中,加入E液体,静置分层。
7. 抽滤:用布氏漏斗过滤,收集滤液。
8. 测定产率:将滤液滴定,计算产率。
六、数据记录与处理1. 称取A、C固体质量,记录在实验记录本上。
2. 加入D固体的质量,记录在实验记录本上。
3. 记录实验过程中观察到的现象,如溶液颜色变化、气泡产生等。
4. 记录抽滤过程中收集到的滤液体积。
5. 记录滴定结果,计算产率。
七、实验结论1. 本次预实验成功合成了目标化合物,验证了实验方案的科学性和可行性。
2. 通过本次实验,掌握了实验步骤和操作技巧,为后续实验奠定了基础。
3. 在实验过程中,发现了一些问题,如反应时间过长、产率较低等,为后续实验提供了改进方向。
八、思考提问交流1. 为什么在实验过程中会产生气泡?2. 如何提高产率?3. 如何缩短反应时间?4. 在实验过程中,如何确保实验安全?5. 实验结果与预期有何差异?原因是什么?通过本次预实验,我们对实验方案进行了验证,为后续实验提供了有益的参考。
HUNAN UNIVERSITY 课程实习报告
题目字符串的倒置
学生姓名
学生学号
专业班级
指导老师
完成日期2013年3月2日
一、需求分析
1.本程序要求采用从字符界面输入一串字符串,将其倒置后打印在屏幕上。
2.字符串由用户通过键盘输入。
不对非法输入做处理,即假设输入都是合法的。
3.在Dos界面输出倒置之后的字符串。
4.测试数据
输入
I love you.
输出
uoy evol I.
注意:题目要求为将用户从节目输入的字符串到之后打印在屏幕上。
这里本人觉得需要注意的问题是当用户输入的字符串不是连续的时候,你所编写的程序能否满足要求。
本来是打算用reverse 函数来实现字符串倒置的,后来发现当输入的字符串不连续时,程序不能满足要求。
后来在学习了数据结构线性表的相关内容后,发现字符串导致问题如果用栈来实现更加方便且可靠。
二、概要设计
抽象数据类型
为实现上述程序的功能,应以字符数组存储用户的输入,以及计算出的结果。
算法的基本思想
根据题目要求,采用本学期第四章所学的链栈类的方法来实现字符串的倒置。
基本原理:
插入一般称为进栈(PUSH),删除则称为退栈(POP)。
栈也称为后进先出表。
总的来说,就是先建立一个栈,把元素一个一个放进去,再把它一个一个取出来即可。
在倒置字符串的程序中,只需要用POP操作吧元素一个一个弹出即可。
程序的流程
程序由三个模块组成:
(1)链栈的定义模块,包括对PUSH和POP两个基本操作的定义。
(2)输入模块:程序提示用户:“请输入一串字符:”。
(3)用for循环把元素逐个弹出,从而实现对字符串的倒置操作。
(4)输出模块:屏幕上显示出导致之后的字符串。
三、详细设计
物理数据类型
题目要求输入字符串,为了能够存储以及用链栈对字符串进行操作时的方便,采用C 语言中的字符数组来定义变量。
char s[100];
算法的具体步骤
栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。
它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。
栈是允许在同一端进行插入和删除操作的特殊线性表。
允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称
为空栈。
插入一般称为进栈(PUSH),删除则称
为退栈(POP)。
栈也称为后进先出表。
在代码中具体实现该操作的部分为:
for(i=0;i<strlen(s);i++) //用for循环来逐
个弹出字符串中的字符,以字符的长度作为循环
截止的标志
Pop(S,s[i]); //用链栈重定义的POP操作来实
现字符串的弹出
puts(s); //把弹出后的字符串逐一的打印出来
算法的时空分析
算法的运行时间依赖于用户输入的字符串的长度。
可以证明,字符串越长,循环次数越多,从而算法的运行时间也就越长。
输入和输出的格式
输入
printf("本程序是倒置字符串\n");
printf("请输入一串字符:");
gets(s);
输出
printf("倒置后:");
puts(s);
四、调试分析
略。
五、测试结果
输入how are you 输出uoy era woh
输入thank you 输出uoy knaht
运行结果截图如下:
六、用户使用说明(可选)
1、本程序的运行环境为DOS操作系统,执行文件为1.exe
2、运行程序时:
提示输入字符串
本程序可以将用户输入的字符串倒置后输出
请输入一串字符:
倒置后:
七、实验心得(可选)
在学习了数据结构才知道,如果一个程序的结构不够好,也许并不会对结果产生影响,但是会大大的增加计算机的负担,总的来说,写出一个完整优秀的算法对于写出一个好程序是至关重要的。
这大概也就是学习数据结构这门课程的重要意义吧。
这个实验有很多种方法,每种方法也有他们各自的好处和各自的缺点。
在做了这个实验之后,对栈也有了更深的理解,如果把栈比喻成一个竹筒,现在把不同编号的小球放到竹筒里面,可以发现一种规律:先放进去的小球只能后拿出来,反之,后放进去的小球能够先拿出来。
所以“先进后出”就是这种结构的特点。
堆栈就是这样一种数据结构。
它是在内存中开辟一个存储区域,数据一个一个顺序地存入(也就是“压入——push”)这个区域之中。
有一个地址指针总指向最后一个压入堆栈的数据所在的数据单元,存放这个地址指针的寄存器就叫做堆栈指示器。
开始放入数据的单元叫做“栈底”。
数据一个一个地存入,这个过程叫做“压栈”。
在压栈的过程中,每有一个数据压入堆栈,就放在和前一个单元相连的后面一个单元中,堆栈指示器中的地址自动加1。
读取这些数据时,按照堆栈指示器中的地址读取数据,堆栈指示器中的地址数自动减 1。
这个过程叫做“弹出pop”。
如此就实现了后进先出的原则。
七、附录(可选)
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#define ERROR 0
#define OK 1
typedef char ElemType;
typedef struct SNode{
ElemType data;
struct SNode *next;
}SNode,*LinkStack;
void InitStack(LinkStack &S)
{
S=(LinkStack)malloc(sizeof(SNode));
S=NULL;
}
void Push(LinkStack &S,ElemType e)
{
LinkStack p=(LinkStack)malloc(sizeof(SNode)); p->data=e;
p->next=S;
S=p;
}
int Pop(LinkStack &S,ElemType &e)
{
LinkStack p;
if(S){
p=S;
e=p->data;
S=p->next;
free(p);
return OK;
}
else return ERROR;
}
int main()
{
char a[100];
LinkStack S;
InitStack(S);
printf("本程序是倒置字符串\n");
printf("请输入一串字符:");
gets(a);
for(int i=0;i<strlen(a);i++) Push(S,a[i]);
printf("颠倒后:");
for(i=0;i<strlen(a);i++)
Pop(S,a[i]);
puts(a);
free(S);
return 0;
}。