当前位置:文档之家› 双向链表的总结报告

双向链表的总结报告

双向链表的总结报告
双向链表的总结报告

双向链表的总结报告

A.首先是对结点的定义问题。

结点的定义是有两个指针的,这是毫无疑问的。外加一个实际要的数据变量。尤其是在书写结点的构造函数的时候,在无参构造函数的书写和以前的单链表的书写是一样的,关键是第二个构造函数的书写,多了一个指针,问题是这两个指针的位置问题,即谁在前,谁在后的问题。其实这个问题是无足轻重的,即顺序随便。但是这个顺序会影响后面链表的实现的书写。请参见链表的实现文件中相关的注释。

B.Error_code中的成员range_error可能与系统的参数有冲突。

经查阅得知确实有冲突,现将系统内的range_error列出如下:

range_error Class

The class serves as the base class for all exceptions thrown to report a range error.

class range_error : public runtime_error {

public:

explicit range_error(const string& message);

};

The value returned by what is a copy of message.data.

处理的方法是:在使用了range_error的地方都加上属于符,这样明确的说明range_error是属于哪一个名字空间了,在本程序中就是Error_code::range_error

C.在用双向链表来实现数据结构的时候时,在涉及到要插入元素的时候以及要删除元素的时候,要特别的注意,因为在这些操作中要考虑很多的临界情况。

D.现分析这个程序中的删除操作和插入操作,分析如下:

1.删除操作:

首先和其他的函数一样,要对链表是否是空进行判断,因为在空链表中进行删除的时候是非法的。其次是对输入的删除的位置进行判断,可能用户输入的删除位

置也是非法的。

首先考虑一般的情况,即删除的元素位于整个链表的中间,此时可以画图来演示实际的操作。这种情况是很容易来处理的。代码如程序所示。

然后考虑非一般的情况,即边界问题。而边界的问题可以从一般的情况来分析得到,当然也可以去自己考虑,但是这是很难考虑全面的。

在一般情况中有表达式:current ->back ->next = current ->next;这里出现了current->back->next这个表达式,在由函数set_position()所得到的current是不会为NULL的。如果current->next为NULL的话,那么等式的右边是合法的,但是等式的左边是非法的。这样一种情况产生,需另外讨论。这样出现了程序的第四个if 语句。

在一般情况中有表达式:current ->next ->back = current ->back;,这里出现了current->next->back这个表达式,在有函数set_position()所得到的current是不会为NULL的,如果current->next为NULL的话,那么等式的右边是合法的,但是等式的左边是非法的。这样一种情况产生,需另外讨论。这样出现了程序的第五个if 语句。

但是上面所考虑的都是上述的两种特殊情况分别产生所要做的特殊处理,那么如果上述两种同时发生是否有这种可能的出现。如果有,那么是否包含在上述的两种情况中。如果不包含在上述的两种情况中的任何一种,那么令一种特殊情况产生,即要特殊对待。

先要考虑一个问题,那就是这三个特殊的情况先书写哪一个,即优先考虑哪一个。现将上述所分析的三种情况按其出现的先后顺序记a,b,c。很显然特殊情况a 和b是相互独立的,因此先考虑谁都无所谓。然后来考虑特殊情况c,有上述的分析可知,特殊情况c是综合分析特殊情况a和b而产生的,即c是b和a的交集,它发生的概率比起a和b而言要小,且a和b中任何一个发生不能推出c就发生,所以不能通过a或b来覆盖c。如果先考虑a和b的话,当特殊情况c发生是,特殊情况a和b都要考虑,此时考虑了三次特殊情况,发生了重复考虑的问题。而将c优先考虑的话,任何一种特殊情况的发生,特殊的处理只进行一次,这样就没有特殊情况特殊处理多次的错误的情形出现。

所以,一般的对于特殊的情况的交集所产生的特殊情况需在产生它的特殊情况之前考虑。

2.插入操作:

首先和其他的函数一样,要对输入的插入的位置进行判断,可能用户输入的删除位置也是非法的。

首先考虑一般的情况,即插入的位置位于链表的中间,此时可以通过画图来演示插入操作是如何进行的。这种情况是很容易处理的,代码如程序所示。

然后考虑非一般的情况,即边界问题。而边界的问题可以从一般的情况来分析得到,当然也可以去自己考虑,但是这是很难考虑全面的。

在一般的情况中出现语句:set_position(position - 1),如果position的取值正好是0的话,那么set_position函数的参数值就是-1了,这显然是非法的。所以一种特殊情况产生,这样出现了第二个if语句。

在一般的情况中出现语句:current ->next ->back = new_Node;这里出现了表达式current->next->back。在由函数set_position()所得到的current是不会为NULL的。

如果current->next为NULL的话,那么等式的左边是非法的。这样一种情况产生,需另外讨论。这样在一般情况的上面的if语句产生。

在position为0的情况的一般处理的时候,会出现语句empty()的判断语句,其实细细推敲的话,这个if语句是不要的,原因是在empty()的情况是不可能发生的,原因是在第一个if语句就已经将这种情况排除在外。但是我个人认为写了也无妨,

毕竟原链表为空是太特殊的情况,在写代码不得不引起程序员的注意。

E对成员函数traverse的说明:

在函数的一开始就要将当前的current和current_position保存下来,因为在下面的情况下要修改他们的值,从而导致原他们的值的丢失。

我个人认为,程序中的算法不一定是最好的。可以在保存了current和current_position后,直接使用函数set_position(0)定位到第一个位置,然后从头依次遍历,即不使用函数retrieve(),因为在函数retrieve()中,current的值一直在变,很可能会增加了内存的消耗。

F.一般地,对于链式存储结构的数据结构,其析构函数与函数clear()是基本上相同的,要是真正的要区别他们的差异,那就是在函数clear()中除了将各个结点删除外,还要将其他的参数恢复到为空链表的状况。所以在书写链式结构的析构函数是可以直接调用函数clear()即可(如果有函数clear()),但是在函数clear()中就不能调用析构函数。所以先书写函数clear(),然后书写析构函数。重点放在函数clear()上。

G.在链式存储结构的数据结构中一般要有拷贝构造函数和操作符=的重载。这两个函数是非常相近的,他们的区别在于前者不需要释放原来的元素,因为在调用这个拷贝构造函数的时候,对象刚刚产生,此时正是为空链表。而后者需要先释放原来的所有结点,原因是如果不释放他们的话,那么在执行了此操作符=的重载函数后,原有的所有结点将变成垃圾,再也找不到了。而释放所有的结点正好可以使用函数clear()来处理。所以实际上操作符=的重载函数实际上是有函数clear()和拷贝构造函数构成的。

如果在某个链式结构的结构中存在一个成员函数(这个成员函数一般是私有成员函数),它返回链表的头指针,那么操作符=的重载函数就非常简单了,如下:

A(b);

Clear();

Head = a.head();

只要上述的三行代码就够了。

对书写双向链表的总的感想

在书写类定义代码的时候,可能某些特殊情况会没有考虑到,这个是没有关系的,因为他们最终是不会遗漏的。

其实在我们开发程序一个应用程序的时候,需要考虑许多临界情况以及极端情况。在开发的阶段要尽量考虑到,但是人总是在开发阶段考虑所有的情形的。这个并不要紧,因为开发应用程序的过程实际上是分两个阶段的:第一阶段是单纯的开发,而第二个阶段是测试。可以说这两个阶段的任何一个阶段没有谁重要,谁不重要之分,事实上他们一样重要,甚至可以说第二阶段更重要一些。此时就要注意测试的技巧了。

在此程序的开发的过程中所总结的测试的经验是:在测试时,首先是测试一般的情况,此时如果一般的情况下程序都不能正确的运行的话,那么此程序就写的有点烂了。

然后测试各种临界情况和极端情况,最好是在书写测试程序之前,好好的静下心来认真的想想这个问题。

注意每一种特殊情况都要测试,绝对不能遗漏。

在每一种情况(一般和特殊)的测试的后面立即书写输出语句,以检查是否是正确的。这个输出语句的书写也是有讲究的,最好是各个情形都要输出来,这样才彻底。

一般这个输出语句对于各种情况都是一样的,所以可以事先写好,或写成一个函数的形式。

对照输出结果,分析是哪个函数出错了。但是一般这是很难的,此时可以通过VS自带的调试工具来检查之。

在涉及到内存的访问超出界限的时候,此时会有异常出现,即一个框子出现,这是在这个框子的下面有三个按钮,选择调试,那么调试程序会启动,并且可以定位出错的位置,此时可以集中精力来分析之。

软件实验心得体会范文

软件实验心得体会范文 经过这学期软件工程实验的学习,深深感到用户需求对软件的重要性。成功的软件产品是建立在成功的需求基础之上的,而高质量的需求来源于用户与开发人员之间有效的沟通与合作。当用户有一个问题可以用计算机系统来解决,而开发人员开始帮助用户解决这个问题,沟通就开始了。 需求获取可能是最困难、最关键、最易出错及最需要沟通交流的活动。对需求的获取往往有错误的认识:用户知道需求是什么,我们所要做的就是和他们交谈从他们那里得到需求,只要问用户系统的目标特征,什么是要完成的,什么样的系统能适合商业需要就可以了,但是实际上需求获取并不是想象的这样简单,这条沟通之路布满了荆棘。首先需求获取要定义问题范围,系统的边界往往是很难明确的,用户不了解技术实现的细节,这样造成了系统目标的混淆。 其次是对问题的理解,用户对计算机系统的能力和限制缺乏了解,任何一个系统都会有很多的用户或者不同类型的用户,每个用户只知道自己需要的系统,而不知道系统的整体情况,他们不知道系统作为一个整体怎么样工作效率更好,也不太清楚那些工作可以交给软件完成,他们不清楚需求是什么,或者说如何以一种精确的方式来描述需求,他们需要开发人员的协助和指导,但是用户与开发人员之间的交流很容易出现障碍,忽略了那些被认为是"很明显"的信息。

最后是需求的确认,因为需求的不稳定性往往随着时间的推移产生变动,使之难以确认。为了克服以上的问题,必须有组织的执行需求的获取活动。 需求获取活动要完成的任务或者步骤的过程如下: 编写项目视图和范围文档 系统的需求包括四个不同的层次:业务需求、用户需求和功能需求、非功能性需求。业务需求说明了提供给用户新系统的最初利益,反映了组织机构或用户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。用户需求文档描述了用户使用产品必须要完成的任务,这在使用实例文档或方案脚本说明中予以说明。功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。 非功能性需求是用户对系统良好运作提出的期望,包括了易用性、反应速度、容错性、健壮性等等质量属性。需求获取就是根据系统业务需求去获得系统用户需求,然后通过需求分析得到系统的功能需求和非功能需求。项目视图和范围文档就是从高层次上描述系统的业务需求,应该包括高层的产品业务目标,评估问题解决方案的商业和技术可行性,所有的使用实例和功能需求都必须遵从的标准。而范围文档定义了项目产品所包括的所有工作及产生产品所用的过程。项目相关人员对项目的目标和范围能达成共识,整个项目组都应该把注意力集中在项目目标和范围上。

实验室心得体会

实验室心得体会 实验室即进行试验的场所,在实验室工作要谨慎且细心。下 面是带来的实验室心得体会范文,欢迎大家阅读。 经历了四周共八个学时的焊接学基础实验,我觉得自己学到 了很多东西,虽然大二的时候自己也在金工实习的时候学过电焊,但是那时候自己对焊接原理是完全不了解,到现在基本学习完了 焊接学基础的理论教学再来做实验的我感觉轻松了,因为我懂得 了很多焊接学的原理。也知道了焊接不只是电焊,另外还有气焊 等等。 这四周的焊接学实验我们总的来说学习了气焊和电焊,气焊 中也分了对低碳钢、中碳钢和高碳钢的焊接,我们在焊接过程中 可以明显的感觉到对于高中低碳钢的难易明显不同! 有一次课程我们学习的是铸铁的焊接,对于铸铁的流动性也 明显可以感受到比较差!每次体验实验之前老师总是给我们介绍 实验需要注意的事项以及实验内容!通过老师的介绍和之后亲身 的体验可以说我们对于每次实验的内容都有很好的理解和体会。 对于这次的电焊实验我的记忆尤其深刻,因为在试验过程中 我出现了很多问题,老师总会给我详细解释出现问题的原因和这 些问题应该怎样解决,比如有一次的试验内容是薄板钢的对接。 两块薄薄的钢板,我很认真的摆放在试验板上焊接,我本以为这 是最简单的焊接了,但是结果却不如意,当我用平焊的方式把这

两块钢板焊接完以后才发现焊接后的钢板出现了严重的变形,原 本平的钢板变得翘起来了!而且由于焊接技术不好使得焊缝很不 平整有些地方甚至出现了焊穿的现象,面对这样的焊接产品我真 是无地自容!但是老师给我详细解释了出现这些问题的原因,比 如钢板翘起来了是因为焊接过程中的散热不均匀,这些现象可以 用经验解决。对于焊穿的那个窟窿老师握着我的手一点一点的把 它填上了,老师告诉我这是由于汉弧太短以及焊接速度太慢造成的!他还鼓励我别灰心,我特感动! 我十分懊恼自己有一身的理论知识却还是焊接处这么差的效果,所以我觉得这次的实验是很必要的,对于我们这些学了很多 理论知识的学生来说是很有帮助的,它使得我们看到了自己的差 距和经验的不足,以后需要勤奋的学习的同时多注重实际的运用,这样才应该是全面实际的应用型人才! 透过这次实验,我大开眼界,正因这次实验个性是回转机构 振动测量及谱分析和悬臂梁一阶固有频率及阻尼系数测试,需要 用软件编程,并且用电脑显示输出。能够说是半自动化。因此在 实验过程中我受易非浅:它让我深刻体会到实验前的理论知识准备,也就是要事前了解将要做的实验的有关质料,如:实验要求,实验资料,实验步骤,最重要的是要记录什么数据和怎样做数据 处理,等等。虽然做实验时,指导老师会讲解一下实验步骤和怎 样记录数据,但是如果自己没有一些基础知识,那时是很难作得 下去的,惟有胡乱按老师指使做,其实自己也不知道做什么。

实验二 链表操作实现

实验二链表操作实现 实验日期: 2017 年 3 月 16 日 实验目的及要求 1. 熟练掌握线性表的基本操作在链式存储上的实现; 2. 以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点; 3. 掌握线性表的链式存储结构的定义和基本操作的实现; 4. 通过本实验加深对C语言的使用(特别是函数的参数调用、指针类型的应用)。 实验容 已知程序文件linklist.cpp已给出学生身高信息链表的类型定义和基本运算函数定义。 (1)链表类型定义 typedef struct { int xh; /*学号*/ float sg; /*身高*/ int sex; /*性别,0为男生,1为女生*/ } datatype; typedef struct node{ datatype data; /*数据域*/ struct node *next; /*指针域*/ } LinkNode, *LinkList; (2)带头结点的单链表的基本运算函数原型 LinkList initList();/*置一个空表(带头结点)*/ void createList_1(LinkList head);/*创建单链表*/ void createList_2(LinkList head);/* 创建单链表*/ void sort_xh(LinkList head);/*单链表排序*/ void reverse(LinkList head);/*对单链表进行结点倒置*/ void Error(char *s);/*自定义错误处理函数*/ void pntList(LinkList head);/*打印单链表*/ void save(LinkList head,char strname[]);/*保存单链表到文件*/

实验心得体会

水泥混凝土配合比设计实验心得体会 随着六月二十八日我们完成了水泥混凝土的强度试验,这次关于水泥混凝土的一系列实验部分我们已经完成,接下来要做的就是内业整理部分了,处理实验数据,完成实验报告,在5天的实验当中,我们每个人都有自己的任务,大家都积极参与进来,真的学到了不少知识,同时也给我留下了不少深刻的印象,回想一下,总结为以下三个方面: 第一:耐心、不怕脏、不怕累不可少。在这几天的实验过程中,对于实验有时候真的很枯燥,需要我们的耐心还有细心;而有些时候,我们需我们发扬不怕累不怕苦的精神,该拿锤子敲集料的时候就要敲集料;该铲石头的时候就要铲石头;该人工拌合混凝土的时候,我们就得拿铁锹一遍又一遍的拌合混凝土…在这一过程中我们需要不怕脏不怕累,该怎么样就怎么样,既然我热爱这个专业,当初选择了这个专业,我就不怕吃苦,今后参加工作后环境会更苦,所以通过这次实验我就开始锻炼自己,锻炼自己的意志,周末我们依然可以在实验室中度过,中午可以不休息,在实验室测水泥的凝结时间,这些我做到了,现在回想起来,还是蛮高兴的。 第二:严谨细致不可丢。实验本身就是通过我们自己的操作来得到某些结论,或观察实验现象,所以为了得到更准确的实验结论,我们必须在实验过程中,要求自己以严谨的态度去完成每一步操作,比如称量是我们要细致的去调节,严格按照规范上的质量称取所需要的试验品,而不是只求个大概,在有量筒取水时,我们要看凹液面的最低处,而不是懒懒散散的随便看一下;另外在实验过程中可能有些实验的操作比较多,步骤比较繁琐,这时我们不能抱着求快的心理将有些步骤省略,或者缩短操作时间等等,不能想当然的,这些都会对实验造成很大的误差,那么从某种意义上来说,它已经失去了原来的意义了。比如在水泥的凝结时间的测定中我们就需要每半小时测一次,虽然在前几个小时,都是一样的,但是我还是要按照规范来测,免得造成误差。 第三:总结思考不可无。实验的魅力在于经过我们自己的长时间操作,曲曲折折的过程最终我们得到了实验结果那一刻的喜悦之情!当然试验不能就此认为结束了,我们需要做的还有很多其中很重要的一方面就是:总结思考。试验完成后我们要想一下为什么会出现这样的结果,为什么与理论结果会有出入?造成这些不同的原因在哪里?我们还可以与其他组进行对比,在对比中找出不同,然后分析不同的原因在哪里?只有这样我们的实验做得才有意义,加入了自己的思考,而不是简简单单地对着规范上的条文,按照上面所述,呆板的操作。比如在试验后,我就分析了一下为什么我们的混凝土强度没有其他组的强度高?水灰比的不同是一方面,还有就是在拌合过程中出现离析现象。 总之,在这5天的实验过程中,真的学到了一些东西,给我印象最深刻的是;

实验心得体会优秀范文

实验心得体会优秀范文 [导语]我们从一些事情上得到感悟后,就很有必要写一篇心得体会,这样我们可以养成良好的总结方法。那么如何写心得体会才能更有感染力呢?下面是帮大家整理的《实验心得体会优秀范文》,希望能够帮助到大家。 [篇一]实验心得体会优秀范文 在公司实习的这段时间里,我在公司主要负责xxx。我想这些对于一个实习生来说是太难得的锻炼机会,所以我也十分的珍惜。对上头的指示都按时完成,有很多不懂的操作我也进取地去提问在一系列工作的同时,我也尽可能的运用自我所学的专业知识,以便到达能够新颖的全面的展现我公司的实力以及产品或者活动的内涵,从而产生相对进取的社会影响力,因为对于新生的企业,社会影响是企业前进与生存不可忽略的一方面,是容不得怠慢的。 在平时工作的环境中我学会了如何简便地工作同时把工作质量提高这主要窍门在于多与公司部门的职员沟通态度谦卑建立良好的关系不懂就要问要谦虚的理解前辈的提议。 在实习的这段时间里我感受到了要生存于社会之中的不易与艰难。室内设计是个苦差使,每个设计师都不容易。但我既然在填报高考志愿的时候选择了这个专业,我此刻也未曾后悔过我的选择。室内行业是一个需要不断学习的行业,室内设计要提高生活审美质量,如果设计师的思维跟不上趋势,那么室内设计的作用也就无从谈起了。我个人认为室内设计工作者不仅仅要有专攻并且还要博闻强识。经过这次实习,我了解了室内设计方向的一些状况,明确了自我的位置,这些都为我以后的方向选择供给了一个具有借鉴意义的依据,为我走好下一步做好了基础。其次,做一个室内设计师,我深深的体会到知识面越广设计就越做的得心应手。所以,回到学校,我还仍有很多书要看,很多东西要学。文字的东西总是相互关联的,“运用之妙,存乎

各种实验心得体会

实验心得体会 在做测试技术的实验前,我以为不会难做,就像以前做物理实验一样,做完实验,然后两下子就将实验报告做完.直到做完测试实验时,我才知道其实并不容易做,但学到的知识与难度成正比,使我受益匪浅. 在做实验前,一定要将课本上的知识吃透,因为这是做实验的基础,否则,在老师讲解时就会听不懂,这将使你在做实验时的难度加大,浪费做实验的宝贵时间.比如做应变片的实验,你要清楚电桥的各种接法,如果你不清楚,在做实验时才去摸索,这将使你极大地浪费时间,使你事倍功半.做实验时,一定要亲力亲为,务必要将每个步骤,每个细节弄清楚,弄明白,实验后,还要复习,思考,这样,你的印象才深刻,记得才牢固,否则,过后不久你就会忘得一干二净,这还不如不做.做实验时,老师还会根据自己的亲身体会,将一些课本上没有的知识教给我们,拓宽我们的眼界,使我们认识到这门课程在生活中的应用是那么的广泛. 通过这次测试技术的实验,使我学到了不少实用的知识,更重要的是,做实验的过程,思考问题的方法,这与做其他的实验是通用的,真正使我们受益匪浅. 实验心得体会 这个学期我们学习了测试技术这门课程,它是一门综合应用相关课程的知识和内容来解决科研、生产、国防建设乃至人类生活所面临的测试问题的课程。测试技术是测量和实验的技术,涉及到测试方法的分类和选择,传感器的选择、标定、安装及信号获取,信号调理、变换、信号分析和特征识别、诊断等,涉及到测试系统静动态性能、测试动力学方面的考虑和自动化程度的提高,涉及到计算机技术基础和基于LabVIEW的虚拟测试技术的运用等。 课程知识的实用性很强,因此实验就显得非常重要,我们做了金属箔式应变片:单臂、半桥、全桥比较,回转机构振动测量及谱分析,悬臂梁一阶固有频率及阻尼系数测试三个实验。刚开始做实验的时候,由于自己的理论知识基础不好,在实验过程遇到了许多的难题,也使我感到理论知识的重要性。但是我并没有气垒,在实验中发现问题,自己看书,独立思考,最终解决问题,从而也就加深我对课本理论知识的理解,达到了“双赢”的效果。 实验中我学会了单臂单桥、半桥、全桥的性能的验证;用振动测试的方法,识别一小阻尼结构的(悬臂梁)一阶固有频率和阻尼系数;掌握压电加速度传感

数据结构课程设计单链表操作

《数据结构课程设计》报告 题目:单链表操作 专业:计算机科学与技术 班级: 单链表操作 针对带头结点的单循环链表,编写实现以下操作的算法函数。

实现要求: ⑴单链表建立函数create:先输入数据到一维数组A[M]中,然后根据一维 数组A[M]建立一个单循环链表,使链表中个元素的次序与A[M]中各元素的次序相同,要求该函数的时间复杂度为O(m); ⑵定位查找函数Locate:在所建立的单循环链表中查找并返回值为key的 第1个元素的结点指针;若找不到,则返回NULL; ⑶求出该链表中值最大和次大的元素值,要求该算法的时间复杂度为O(m), 最大和次大的元素值通过指针变量带回,函数不需要返回值; ⑷将链表中所有值比key(值key通过形参传入)小的结点作为值为key的结 点前驱,所有值比key大的结点作为值为key的结点后继,并尽量保持原有结点之间的顺序,要求该算法的时间复杂度为O(m); ⑸设计一个菜单,具有上述处理要求和退出系统功能。 ⒈本人完成的工作: 一、定义结构体:LNode 二、编写以下函数: (1)建立单循环链表 (2)建立定位查找函数 (3)求出链表中最大和次大值 (4)将链表中的值和输入的Key比较,小的作为key前驱结点,大的作为key 的后继结点 三、设计具有上述处理要求和退出系统菜单 ⒉所采用的数据结构:单链表 数据结构的定义: typedef struct Node //定义结点的结构体 { DataType data; //数据域 struct Node *next; //指针域

}LNode; //结点的类型 ⒊所设计的函数 (1)Create(void) LNode *Create(void) //建立单循环链表,链表头结点head作为返回值{ int i,j,n,A[M]; //建立数组A【M】 LNode *head,*p,*move; head=(LNode*)malloc(sizeof(LNode)); //创建空单循环链表head->next=head; move=head; printf("请输入数组元素的个数:"); //输入数组 scanf("%d",&n); printf("请输入数组:"); for(i=0;idata=A[j]; p->next=move->next; move->next=p; move=move->next; } return head; //返回头指针

实验心得总结范文精选

实验心得总结范文精选 实验心得总结范文精选一 作为高频电子的老师,高频基础实验可以说算得上是让学生一次崭新的实验尝试。比如说:新奇,原则性强等等,学生从一开始的一窍不通,到后来的熟悉,喜欢,感觉自己学到了很多,很多。算起来虽只让学生做了六次实验,仅仅只是初步接触,当却感觉学生学到了不少东西。一些从书本上学不到的东西。 我觉得要做好高频电子实验,需要意识到如下几点: 1、充分的预习是必要的。以往做电子技能实训与考核实验台电工实验时学生往往只看一下步骤,原理一带而过。这样做实验时便会吃大亏。一般在实验前得花上一个小时去预习。这样试验结果是令人满意的。

2、需要预先对结果进行预测,至少在碰到问题时会合理的去分析问题。之所以会这样说也是有血的教训的,由于某个学生对过程中一个问题视而不见,导致出现了重做的悲惨命运。 3、对一些实验注意事项要在意。这里可不是说我弄坏了什么东西,而是基于大家都明白的一个道理:水火无情,电更无情。可能是由于我的原因吧,我每次让学生实验时,似乎对学生很不放心,可谓事必躬亲,再三叮嘱,这也有一个好处:试验出错的可能性大大减少,而且安生性也大大增加了。 在实验的过程中,让学生学会如何分析问题,如何解决问题,以及如何总结问题。通过这段时间的高频电子实验,学生能够掌握高频电子的一些基本理论了。比方说lc谐振电路,频带的展宽等。让学生了解到仅仅通过一些简单的试验仪器便可以将知识运用进生活中去。这对于学生以后的发展,我想是大有裨益的。 实践是检验真理唯一的标准,我想电工电子电力拖动实训考核台高频电子实验之所以会在学生中大受欢迎,并被视

为学校开放性实验室,与其在实验中和学生走在一起的原则是分不开的。希望以后还有机会进这个实验室。 实验心得总结范文精选二 实验相对于每个人来说都有着特殊的意义,一般意义上来说他肯定是都会有不一样的心得体会,对于那些学习过实验后的人来说记录下这些心得体会是十分重要的,写一份实验心得体会他不仅仅能抒发自己的情感,与此同时我们还能学会做人,在这里,小编为大家准备了实验心得体会的范文,小编希望能够帮助大家更好的阐述自己的校本实验心得体会。 1.这个学期我们学习了测试技术这门课程,它是一门综合应用相关课程的知识和内容来解决科研、生产、国防建设乃至人类生活所面临的测试问题的课程。 测试技术是测量和实验的技术,涉及到测试方法的分类和选择,传感器的选择、标定、安装及信号获取,信号调理、变换、信号分析和特征识别、诊断等,涉及到测试系统静动

双向链表基本操作

双向链表 输入一个双向链表,显示些双向链表并对此双向链表排序运行结果: 源程序: #include #include #include

typedef struct Link/*双向链表结构体*/ { int data; struct Link *lift; struct Link *right; }linkx,*linky; linky Init();/*建立双向链表*/ void PrLink(linky p);/*输出双向链表*/ linky Sort(linky head);/*对双向链表排序*/ linky Swap(linky head,linky one,linky two);/*任意交换双向链表两个结点的地址*/ void main(void) { linky head; head=Init(); head=Sort(head); PrLink(head); } linky (Init())/*建立链表*/ { linky p,q,head; int n=0; head=p=q=(linky)malloc(sizeof(linkx)); printf("排序前的链表: "); scanf("%d",&p->data);/*输入数据*/ head->lift=NULL; n++; while(n!=10)/*一直输入到规定的数字个数停止*/ { q=p;

p=(linky)malloc(sizeof(linkx)); scanf("%d",&p->data);/*输入数据*/ q->right=p; p->lift=q; n++; } p->right=NULL; return(head); } linky Swap(linky head,linky one,linky two)/*任意交换两个结点*/ {linky temp; if(one->lift==NULL&&two->right==NULL)/*首和尾巴的交换*/ { if(one->right==two)/*只有两个结点的情况下*/ { two->right=one; two->lift=NULL; one->lift=two; one->right=NULL; head=two; } else/*有间隔的首尾交换*/ { one->right->lift=two; two->lift->right=one; two->right=one->right; one->lift=two->lift; two->lift=one->right=NULL; head=two;/*尾结点成为头结点*/ }

心得体会 心得体会范文 实验心得体会四篇

实验心得体会四篇 实验心得体会(一) 时间过得真快,不经意间,一个学期就到了尾声,进入到如火如荼的期末考试阶段。 在学习单片机这门课程之前,就早早的听各种任课老师和学长学姐们说过这门课程的重要性和学好这门课程的关键~~多做单片机实验。 这个学期,我们除了在课堂上学习理论知识,还在实验室做了7次实验。将所学知识运用到实践中,在实践中发现问题,强化理论知识。 现在,单片机课程已经结束,即将开始考试了,需要来好好的反思和回顾总结下了。 第一次是借点亮LED灯来熟悉keil软件的使用和试验箱上器材。第一次实验体现了一个人对新事物的接受能力和敏感度。虽然之前做过许多种实验。但依旧发现自己存在一个很大的问题,对已懂的东西没耐心听下去,容易开小差;在听老师讲解软件使用时,思路容易停滞,然后就跟不上老师的步骤了,结果需要别人再次指导;对软件的功能没有太大的热情去研究探索,把一个个图标点开,进去看看。所以第一次试验相对失败。鉴于此,我自己在宿舍下载了软件,然后去熟悉它的各个功能,使自己熟练掌握。 在做实验中,第二个问题应该是准备不充分吧。一开始,由于没有课前准备的意识,每每都是到了实验室才开始编程,完成作业,导

致每次时间都有些仓促。后来在老师的批评下,认识到这是个很大的问题:老师提前把任务告诉我们,就是希望我们私下把程序编好。于是我便在上机之前把程序编好,拷到U盘,这样上机时只需调试,解决出现的问题。这样就会节约出时间和同学讨论,换种思路,换种方法,把问题给吃透。发现、提出、分析、解决问题和实践能力是作为我们这个专业的基本素质。 三是我的依赖性很大,刚开始编程序时喜欢套用书上的语句,却对语句的理解不够。于是当程序出现问题时,不知道如何修改,眼前的程序都是一块一块的被拼凑整合起来的,没法知道哪里错了。但是编程是一件很严肃的事情,容不得半点错误。于是便只能狠下决心,坚持自己编写,即使套用时,也把每条语句弄懂。这也能激发了学习的兴趣。 还有一次实验是调出电脑里的程序,让它在试验箱上实现其功,让我们去体会别人编程的技巧和程序逻辑美感。看了之后,不得不说我目前的水平简直太小儿科了。还有连线也是个问题,对试验箱内部结构功能的不懂,以至于不知道如何连线让程序实现其功能。这让我意识到单片机是软件和硬件的结合,两者是一个整体。所以必须把硬件方面加强。 五是基础知识的薄弱,也是最基础的问题吧!在用C语言编程时,才发现自己C语言真的太差劲了,虽然这门课程早就学过,但是就目前所掌握的C语言知识,对于单片机编程远远不够。C语言也是我们以后学各种语言的基础,必须要花大量的时间温习强化。

实验课的心得体会

实验课的心得体会 篇一: 经过半年的生化实验的学习让我受益菲浅。在生化实验课即将结束之时,我对在这半年来的学习进行了总结,总结这一年来的收获与不足。取之长、补之短,在今后的学习和工作中有所受用。 这半年的生化实验主要有folin-酚法测蛋白稀碱法提取酵母RNA 醋酸纤维薄膜电泳 RNA定量测定-UV吸收法纤维素酶活力的测定最适PH选择菲林试剂热滴定定糖法肌糖元的酵解作用 N-末端氨基酸残基的测定--DNS-CL法柱层析分离色素凯式定氮法等实验。 在这些实验中,凯式定氮法是给我印象最深的一个实验,因为这个实验使我认识了改良式凯式蒸馏仪的基本结构,同样的也让我通过这次实验掌握了凯式定氮法的操作技术。在这次实验中,我和我的同组者-韩文志犯了一些错误,而且是很不应该犯的错误,我们都忘了在做实验时要加入新的沸石,这是个很低级的错误,差点引起溶液的暴沸。通过这次错误我认识到,很多知识,即使是老师在怎么说,它也只是理论,当我们不能把它应用到实践中去时,它对我们都是毫无意义的。现在更深的认识到了理论结合实际的观点。在这次实验中我们损坏了改良式凯式蒸馏仪,并且赔了钱,钱不是问题,重要的是操作的问题,我觉得我们在做实验时

还是对仪器不是很熟悉,做实验时不认真。 还有一个是柱层析分离色素,这个实验主要是掌握吸附层析的原理和操作技术,我记得这次实验我是第二个到的实验室,当时还很有成就感,进来后就称菠菜,还有研磨,这是很累人的活,我觉得,因为想把它研磨的好些,又想快点做实验,于是就一直磨一直磨,直到做下一步时才觉得手腕有点累。我记得在加棉花时,由于不知道应该加多厚,提取色素时还很是胆战心惊的。我觉得在这个实验中,装柱这一步是很重要的,于是我们很小心的装,直到柱面很平。直到最后,分离色素后,看到我们的色带分离的很好,很是高兴。 半年实验做下来,最“苦”的要数“菲林试剂热滴定定糖法”这个实验了。这个实验要求我们正确掌握滴定管的使用方法和热滴定的终点。由于全部滴定过程必须在沸腾状态下快速进行,而且终点不容易把握,我们滴了好几十次才确定了终点。当时我的同组者-韩文志已经被火烤的不行了。 在这半年的十几次的实验的学习中,我受益颇多。毫无疑问,它培养了我的动手能力。每个实验我都会亲自去做,不放弃每次锻炼的机会。经过这半年,我的动手能力有了明显的提高;它让我养成了课前预习的好习惯。一直以来就没能养成课前预习的好习惯,但经过这半年,让我不仅深深的懂得课前预习的重要,更领会了课前预习的好处。只有在课

单链表基本操作实验

实验2 链表的操作 实验容: 1)基础题:编写链表基本操作函数,链表带有头结点 (1)CreatList_h()//用头插法建立链表 (2)CreateList_t()//用尾插法建立链表 (3)InsertList()向链表的指定位置插入元素 (4)DeleteList()删除链表中指定元素值 (5)FindList()查找链表中的元素 (6)OutputList()输出链表中元素 2)提高题: (1)将一个头节点指针为heada的单链表A分解成两个单链表A和B,其头结点指针分别为heada和headb,使得A表中含有原单链表A中序号为奇数的元素,B表中含有原链表A中序号为偶数的元素,且保持原来的相对顺序。 (2)将一个单链表就地逆置。 即原表(a1,a2,。。。。。。 an),逆置后新表(an,an-1,。。。。。。。a1) /* 程序功能 :单链表基本功能操作 编程者 :天啸 日期 :2016-04-14 版本号 :3.0 */ #include #include typedef struct List { int data; struct List *next; }List; void CreatList_h(List *L) //头插法 { int i = 0; int n = 0; int goal; List *p; printf("请输入数据的个数:\n"); scanf("%d",&n); L -> next = NULL; for(i=0;i

{ printf("请输入第%d个数:\n",i+1); scanf("%d",&goal); p = (struct List*)malloc(sizeof(struct List)); p -> data = goal; p -> next = L->next; //将L指向的地址赋值给p; L -> next = p; } } void CreateList_t(List *L) //尾插法 { int i; int n; int goal; List *p; List *q=L; printf("请输入数据的个数:\n"); scanf("%d",&n); for (i=0;i data = goal; q -> next = p; q = p; } q -> next = NULL; } void InsList(List *L,int i,int e) //插入 { List *s; List *p = L; int j = 0; while (p&&jnext; ++j; } s = (struct List*)malloc(sizeof(struct List)); s -> data = e; //插入L中

链表的基本操作

2.链表的基本操作 对链表施行的操作有很多种,最基本的操作是在链表中插入结点、在链表中删除结点、在链表中查找结点等。 (1) 链表结点的插入 ①在空链表中插入一个结点 空链表就是头指针为空的链表。 a)用如下语句申请一个new结点: new=(struct node)calloc(1,sizeof(struct node)); b)为new结点填充数据:将要存储的数据对应传递给new结点数据域的各个成员。 c)修改有关指针的指向:将new的next成员置空,使new结点成为链表的最后一个结点;将head指向new结点。 ②在链表的结点之后插入一个结点 要在链表head的C、D结点之间出入一个new结点,就是将new结点变成C结点的下一个结点,而new结点的下一个结点为D结点. 操作过程为: a) 使new的指针域存储结点D的首地址。 b) 使C结点的指针域存储结点new的地址。 例2 建立学生成绩链表,链表有3个结点。 #include #define N 3 struct s_node { char num[4]; int score;

struct s_node *next; }; main() { struct s_node *creat_node(void); /*生成链表结点的函数*/ struct s_node *creat_list(int n); /*建立链表的函数*/ void out_list(struct s_node *head); /*输出链表函数*/ struct s_node *head=NULL; head=creat_list(N); out_list(head); } struct s_node *creat_node(void) /*生成链表结点的函数*/ { struct s_node *p; int score; fflush(stdin); p=(struct s_node *)calloc(1,sizeof(struct s_node)); gets(p->num); scanf("%d",&score); p->score=score; p->next=NULL; return(p);

实验报告心得体会

智能家居物联网工程训练---心得体会 这一个学期的电子工程训练给我最为深刻的感受就是——进了信电系真好。尤其是在四楼做的智能家居物联网工程训练,通过对小白路由器,智能插座和智能机器人小车的组装和使用体验,更是让我充分体会到了电子信息产业的魅力和乐趣。 在各项科技都飞速发展的当今社会,电子信息产业作为21世纪最具潜力的产业之一,其发展速度更是如雨后春笋般迅猛。作为一名信息工程专业的当代大学生,更是不能与时代脱节,必须及时接触电子信息产业的尖端科技,才能跟上电子信息发展的步伐。感谢这门课程让我在学习理论的同时,能够亲手实践,接触并了解了智能家居物联网的相关知识,参与并操作了原来只能在电视上观看的事情。 记得以前看电视的时候,常会不经意看到那些明星在综艺节目里展示他的智能家居,在千里外用手机按几个按键,家里的电视就自动播放,灯就自动点亮之类的。当时就觉得,这就是高科技啊。然而在这个学期,通过对小白路由器的操作,我也可以通过手机使得小白路由器在自动播放视频了,不仅仅是体验了一把高科技,更是对小白的信号网络有了初步的了解。这比仅仅在生活中使用它更有意义。还有实用性极强的只能插座,不仅能避免一些因忘关电源引起的不幸,也能有效避免资源的浪费。 其实整个课程中,我最喜欢的还是wifi智能机器人小车。记得每次看到机器人大赛上那些灵活行动的智能机器人时,我就羡慕得不得了,虽然内心无比向往,但一直没有机会尝试。直到在这门课上,我亲手组装并操作了机器人小车,还在这个过程中了解了机器人小车的主要部件。看着那么复杂高端的机器人小车居然是我组装出来的,真的十分满足。印象深刻的是,当我们把小车拿到实验室外做循迹实验时,别的同学路过看到了一台台灵活运动的小车后,都带着向往和好奇的眼神向我们询问:“你们上的是什么

链表基本操作实验报告

实验2 链表基本操作实验 一、实验目的 1. 定义单链表的结点类型。 2. 熟悉对单链表的一些基本操作和具体的函数定义。 3. 通过单链表的定义掌握线性表的链式存储结构的特点。 二、实验内容与要求 该程序的功能是实现单链表的定义和主要操作。如:单链表建立、输出、插入、删除、查找等操作。该程序包括单链表结构类型以及对单链表操作的具体的函数定义和主函数。程序中的单链表(带头结点)结点为结构类型,结点值为整型。 要求: 同学们可参考指导书实验2程序、教材算法及其他资料编程实现单链表相关操作。必须包括单链表创建、输出、插入、删除操作,其他操作根据个人情况增减。 三、 算法分析与设计。 头结点 ......

2.单链表插入 s->data=x; s->next=p->next; p->next=s; 3.单链表的删除: p->next=p->next->next;

四、运行结果 1.单链表初始化 2.创建单链表 3.求链表长度 4.检查链表是否为空 5.遍历链表 6.从链表中查找元素 7.从链表中查找与给定元素值相同的元素在顺序表中的位置

8.向链表中插入元素 插入元素之后的链表 9.从链表中删除元素 删除位置为6的元素(是3) 10.清空单链表 五、实验体会 经过这次单链表基本操作实验,自己的编程能力有了进一步的提高,认识到自己以前在思考一个问题上思路不够开阔,不能灵活的表达出自己的想法,虽然在打完源代码之后出现了一些错误,但是经过认真查找、修改,最终将错误一一修正,主要是在写算法分析的时候出现了障碍,经过从网上查找资料,自己也对程序做了仔细的分析,对单链表创建、插入、删除算法画了详细的N-S流程图。

实验心得体会大全-实验总结

实验心得体会 这个学期我们学习了测试技术这门课程,它是一门综合应用相关课程的知识和容来解决科研、生产、国防建设乃至人类生活所面临的测试问题的课程。测试技术是测量和实验的技术,涉及到测试方法的分类和选择,传感器的选择、标定、安装及信号获取,信号调理、变换、信号分析和特征识别、诊断等,涉及到测试系统静动态性能、测试动力学方面的考虑和自动化程度的提高,涉及到计算机技术基础和基于LabVIEW的虚拟测试技术的运用等。 课程知识的实用性很强,因此实验就显得非常重要,我们做了金属箔式应变片:单臂、半桥、全桥比较,回转机构振动测量及谱分析,悬臂梁一阶固有频率及阻尼系数测试三个实验。刚开始做实验的时候,由于自己的理论知识基础不好,在实验过程遇到了许多的难题,也使我感到理论知识的重要性。但是我并没有气垒,在实验中发现问题,自己看书,独立思考,最终解决问题,从而也就加深我对课本理论知识的理解,达到了“双赢”的效果。 实验中我学会了单臂单桥、半桥、全桥的性能的验证;用振动测试的方法,识别一小阻尼结构的(悬臂梁)一阶固有频率和阻尼系数;掌握压电加速度传感器的性能与使用方

法;了解并掌握机械振动信号测量的基本方法;掌握测试信号的频率域分析方法;还有了解虚拟仪器的使用方法等等。实验过程中培养了我在实践中研究问题,分析问题和解决问题的能力以及培养了良好的工程素质和科学道德,例如团队精神、交流能力、独立思考、测试前沿信息的捕获能力等;提高了自己动手能力,培养理论联系实际的作风,增强创新意识。 实验体会 这次的实验一共做了三个,包括:金属箔式应变片:单臂、半桥、全桥比较;回转机构振动测量及谱分析;悬臂梁一阶固有频率及阻尼系数测试。各有特点。 通过这次实验,我大开眼界,因为这次实验特别是回转机构振动测量及谱分析和悬臂梁一阶固有频率及阻尼系数测试,需要用软件编程,并且用电脑显示输出。可以说是半自动化。因此在实验过程中我受易非浅:它让我深刻体会到实验前的理论知识准备,也就是要事前了解将要做的实验的有关质料,如:实验要求,实验容,实验步骤,最重要的是要记录什么数据和怎样做数据处理,等等。虽然做实验时,指导老师会讲解一下实验步骤和怎样记录数据,但是如果自己没有一些基

链表基本操作实验报告

实验2 链表基本操作实验 一、实验目的 1. 定义单链表的结点类型。 2. 熟悉对单链表的一些基本操作和具体的函数定义。 3. 通过单链表的定义掌握线性表的链式存储结构的特点。 二、实验容与要求 该程序的功能是实现单链表的定义和主要操作。如:单链表建立、输出、插入、删除、查找等操作。该程序包括单链表结构类型以及对单链表操作的具体的函数定义和主函数。程序中的单链表(带头结点)结点为结构类型,结点值为整型。 要求: 同学们可参考指导书实验2程序、教材算法及其他资料编程实现单链表相关操作。必须包括单链表创建、输出、插入、删除操作,其他操作根据个人情况增减。 三、 算法分析与设计。 头结点

2.单链表插入 s->data=x; s->next=p->next; p->next=s; 3.单链表的删除: p->next=p->next->next;

四、运行结果 1.单链表初始化 2.创建单链表 3.求链表长度 4.检查链表是否为空 5.遍历链表 6.从链表中查找元素 7.从链表中查找与给定元素值相同的元素在顺序表中的位置

8.向链表中插入元素 插入元素之后的链表 9.从链表中删除元素 删除位置为6的元素(是3) 10.清空单链表 五、实验体会 经过这次单链表基本操作实验,自己的编程能力有了进一步的提高,认识到自己以前在思考一个问题上思路不够开阔,不能灵活的表达出自己的想法,虽然在打完源代码之后出现了一些错误,但是经过认真查找、修改,最终将错误一一修正,主要是在写算法分析的时候出现了障碍,经过从网上查找资料,自己也对程序做了仔细的分析,对单链表创建、插入、删除算法画了详细的N-S流程图。

学生实验心得体会

学生实验心得体会 篇1: 透过这次实验,我大开眼界,正因这次实验个性是回转机构振动测量及谱分析和悬臂梁一阶固有频率及阻尼系数测试,需要用软件编程,并且用电脑显示输出。能够说是半自动化。因此在实验过程中我受易非浅:它让我深刻体会到实验前的理论知识准备,也就是要事前了解将要做的实验的有关质料,如:实验要求,实验资料,实验步骤,最重要的是要记录什么数据和怎样做数据处理,等等。虽然做实验时,指导老师会讲解一下实验步骤和怎样记录数据,但是如果自己没有一些基础知识,那时是很难作得下去的,惟有胡乱按老师指使做,其实自己也不知道做什么。 在这次实验中,我学到很多东西,加强了我的动手潜质,并且培养了我的独立思考潜质。个性是在做实验报告时,正因在做数据处理时出现很多问题,如果不解决的话,将会很难的继续下去。例如:数据处理时,遇到要进行数据获取,这就要求懂得labview软件一些基本操作;还有画图时,也要用软件画图,这也要求懂得excel软件的插入图表命令。并且在做回转机构振动测量及谱分析实验,获取数据时,注意读取波形要改变采样频率,等等。当然不只学到了这些,那里我就不多说了。

还有动手这次实验,使测试技术这门课的一些理论知识与实践相结合,更加深刻了我对测试技术这门课的认识,巩固了我的理论知识。 但是这次实验虽好,但是我认为它安排的时刻不是很好,还有测试技术考试时刻,正因这些时刻安排与我们的课程设计时刻有冲突,使我不能专心于任一项,结果不能保证每一个项目质量,因此如果有什么出错请指出! 篇2: 经历了四周共八个学时的焊接学基础实验,我觉得自己学到了很多东西,虽然大二的时候自己也在金工实习的时候学过电焊,但是那时候自己对焊接原理是完全不了解,到此刻基本学习完了焊接学基础的理论教学再来做实验的我感觉简单了,正因我懂得了很多焊接学的原理。也知道了焊接不只是电焊,另外还有气焊等等。 这四周的焊接学实验我们总的来说学习了气焊和电焊,气焊中也分了对低碳钢、中碳钢和高碳钢的焊接,我们在焊接过程中能够明显的感觉到对于高中低碳钢的难易明显不一样! 有一次课程我们学习的是铸铁的焊接,对于铸铁的流动性也明显能够感受到比较差!每次体验实验之前老师总是给我们说实验需要注意的事项以及实验资料!透过老师的说和之后亲身的体验能够说我们对于每次实验的资料都有很好

单链表的定义及基本操作

单链表的定义及基本操作 一、实验目的、意义 (1)理解线性表中带头结点单链表的定义和逻辑图表示方法。 (2)熟练掌握单链表的插入,删除和查询算法的设计与实现。 (3)根据具体问题的需要,设计出合理的表示数据的链表结构,并设计相关算法。 二、实验内容及要求 说明1:本次实验中的链表结构均为带头结点的单链表。 说明2: 学生在上机实验时,需要自己设计出所涉及到的函数,同时设计多组输入数据并编写主程序分别调用这些函数,调试程序并对相应的输出作出分析;修改输入数据,预期输出并验证输出的结果,加深对有关算法的理解。 具体要求: 建立单链表,完成链表(带表头结点)的基本操作:建立链表、插入、删除、查找、输出;其它基本操作还有销毁链表、将链表置为空表、求链表的长度、获取某位置结点的内容、搜索结点。 三、实验所涉及的知识点 数据结构、C语言语法函数、结构体类型指针、单链表(建表、初始化链表、求表长、插入、删除、查询算法)等。 四、实验结果及分析 (所输入的数据及相应的运行结果,运行结果要有提示信息,运行结果采用截图方式给出。) 五、总结与体会 (调试程序的心得与体会,若实验课上未完成调试,要认真找出错误并分析原因等。) 调试程序时,出现了许多错误。如:结构体类型指针出错,忽略了释

放存储空间,对头插法建表、尾插法建表不熟悉等。另外还有一些语法上的错误。由于对所学知识点概念模糊,试验课上未能完成此次上机作业。后来经过查阅教材,浏览网页等方式,才完成试验。这次试验出现错误最重要的原因就是对课本知识点理解不深刻以及编写代码时的粗心。以后要都去练习、实践,以完善自己的不足。 六、程序清单(包含注释) //单链表 #include<> #include<> #define OK 1 #define ERROR 0 typedef char ElemType; typedef int Status; //线性表的单链表的存储结构 typedef struct LNode{ ElemType data; struct LNode *next; }LNode,*LinkList; //LinkList为结构体类型的指针,可以直接定义变量,比如LinkList p; //建表(头插法) void CreatListF(LinkList &L,ElemType a[],int n) { //初始化线性表 L=(LinkList)malloc(sizeof(LNode));//分配内存空间 L->next=NULL;

相关主题
文本预览
相关文档 最新文档