数据结构学习总结
数据结构 知识点总结

数据结构知识点总结一、基本概念数据:所有能被输入到计算机并被处理的符号的集合。
数据元素:数据的基本单位,也称为结点、节点或记录。
数据项:构成数据元素的不可分割的最小单位。
抽象数据类型:抽象数据组织和与之相关的操作,通常采用数据对象、数据关系、基本操作集这样的三元组来表示。
二、逻辑结构数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。
数据元素之间的关系(逻辑结构)可分为四类:集合结构:数据元素之间除了“属于同一集合”的关系外,别无其它关系。
线性结构:数据元素之间存在一对一的关系,如数组、链表、队列和栈等。
树形结构:数据元素之间存在一对多的关系,如二叉树、多叉树等。
图结构或网状结构:数据元素之间存在多对多的关系。
三、存储结构数据对象在计算机中的存储表示称为数据的存储结构,也称物理结构。
数据元素在计算机中有两种基本的储存结构:顺序存储结构:借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助程序设计语言的数组类型来描述。
链式存储结构:无需占用一整块存储空间,数据元素的存储位置不必连续,而是通过指针链接形成逻辑关系。
四、数据结构的运算数据结构中的运算包括插入、删除、查找、遍历等,这些运算的实现依赖于具体的逻辑结构和存储结构。
五、数据结构的应用数据结构在各个领域都有广泛的应用,如数据库系统、计算机网络、图形处理等。
通过合理地选择和设计数据结构,可以提高程序的运行效率,降低存储空间的占用。
六、数据结构与算法的关系数据结构和算法是相辅相成的。
数据结构是算法的基础,算法的实现依赖于特定的数据结构。
同时,算法的优化也往往需要对数据结构进行改进和调整。
总结来说,数据结构是计算机科学中的核心概念之一,它涉及数据的组织、存储和运算等多个方面。
理解和掌握数据结构的基本知识点和原理,对于提高编程能力和解决实际问题具有重要意义。
学习数据结构心得体会

学习数据结构心得体会数据结构研究总结通过一学期对《数据结构与算法》的研究,大概的了解了基本的数据结构和相应的一些算法。
下面总结一下自己一个学期研究的收获和心得。
数据结构是什么:数据结构是计算机存储、组织数据的方式。
数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。
数据结构往往同高效的检索算法和索引技术有关。
数据结构重要性:一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。
对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示;此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。
一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率。
在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。
许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。
许多时候,确定了数据结构后,算法就容易得到了。
有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。
不论哪种情况,选择合适的数据结构都是非常重要的。
选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。
这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。
常见的数据结构:1.顺序表:定义:顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。
线性表采用顺序存储的方式存储就称之为顺序表。
顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。
基本运算:置表空:sqlsetnull(l)判表满:sqlempty(l)求表长:sqllength(l)插入:sqlinsert(l,i,x)按序号取元素:sqlget(l,i)删除:sqldelete(l,i)按值查找:sqllocate(l,x)2.链表定义:链表是一种物理储备单元上非连续、非顺序的储备结构,数据元素的逻辑顺序是经由过程链表中的指针链接次序实现的。
数据结构心得体会(优秀5篇)

数据结构心得体会(优秀5篇)数据结构心得体会(优秀5篇)数据结构心得体会要怎么写,才更标准规范?根据多年的文秘写作经验,参考优秀的数据结构心得体会样本能让你事半功倍,下面分享【数据结构心得体会(优秀5篇)】相关方法经验,供你参考借鉴。
数据结构心得体会篇1数据结构是计算机科学的核心部分,它涉及到如何组织、存储和操作数据。
在学习数据结构的过程中,我不仅提高了编程技能,还深入理解了计算机底层的工作原理。
以下是我对数据结构的一些心得体会:1.数据结构的重要性:数据结构不仅在算法设计中起到核心作用,还涉及到计算机的存储、网络、数据库等领域。
理解数据结构可以让我们更有效地进行问题解决和程序设计。
2.数据结构与算法的平衡:数据结构与算法是相互关联的,理解一个数据结构需要同时理解其对应的算法。
在实际应用中,我们需要根据问题需求选择适当的数据结构和算法。
3.数据结构的灵活运用:不同的数据结构适用于不同的问题场景。
例如,链表适用于插入和删除操作,而数组适用于随机访问。
理解这些差异并灵活运用数据结构可以显著提高程序的效率。
4.数据结构的复杂度分析:学习数据结构时,我们需要关注算法的时间复杂度和空间复杂度。
理解并优化这些复杂度对于编写高效的程序至关重要。
5.数据结构的实际应用:数据结构在日常生活和工作中也有广泛应用。
例如,文件系统、数据库、网络编程等领域都涉及到数据结构的运用。
总的来说,数据结构的学习过程是一个理论与实践相结合的过程。
通过学习数据结构,我不仅提高了编程技能,还培养了问题解决能力和逻辑思维能力。
我相信,这些收获将对我未来的学习和工作产生积极影响。
数据结构心得体会篇2当我开始学习数据结构时,我对这门学科充满了兴趣和好奇。
作为一名计算机科学专业的学生,我知道数据结构是编程的核心,掌握数据结构将有助于提高我的编程能力和解决问题的能力。
在这篇文章中,我将分享我的学习数据结构的经历和心得体会。
首先,我选择了一门数据结构的入门课程,开始了我的学习之旅。
数据结构实验总结及心得体会

数据结构实验总结及心得体会引言数据结构作为计算机科学的基础课程,是理解和应用计算机编程的重要部分。
通过实验的形式,我们可以更加深入地理解不同数据结构的特点和应用场景。
本文将总结我在数据结构实验中的学习经验和心得体会。
实验一:线性表在线性表实验中,我学习了顺序表和链表两种基本的线性表结构。
顺序表使用数组来存储数据,具有随机访问的特点;链表使用指针来连接数据元素,具有插入和删除操作方便的特点。
通过这个实验,我深刻认识了线性表的存储结构和操作方法。
我遇到的难点是链表的插入和删除操作,因为涉及到指针的重新指向。
通过调试和分析代码,我逐渐理解了指针指向的含义和变化规律。
在实验结束后,我还进一步学习了循环链表和双向链表的特点和应用。
实验二:栈和队列栈和队列是两种常用的数据结构,可以用来解决很多实际问题。
在这个实验中,我学习了顺序栈、链式栈、顺序队列和链式队列四种基本实现方式。
实验中我遇到的最大困难是队列的循环队列实现,因为需要处理队列尾指针的位置变化。
我通过画图和调试发现了队列尾指针的变化规律,并在实验中成功实现了循环队列。
熟练掌握了栈和队列的操作方法后,我进一步学习了栈的应用场景,如表达式求值和括号匹配等。
队列的应用场景还有优先级队列和循环队列等。
实验三:串串是由零个或多个字符组成的有限序列,是实际应用中十分常见的数据类型。
在这个实验中,我学习了串的存储结构和常规操作。
实验中最具挑战性的部分是串的模式匹配。
模式匹配是在一个主串中查找一个子串的过程,可以使用暴力匹配、KMP 算法和BM算法等不同的匹配算法。
在实验中,我实现了KMP算法,并在实际应用中进行了测试。
从实验中我学到了使用前缀表和后缀表来提高模式匹配的效率。
同时,在应用中也了解到了串的搜索和替换等常见操作。
实验四:树和二叉树树是一种重要的非线性数据结构,应用广泛。
在这个实验中,我学习了树的基本概念、存储结构和遍历方式。
实验中最困难的部分是二叉树的遍历。
数据结构心得体会(6篇)

数据结构心得体会(6篇)心得体会是一种产生感想之后写下的文字,主要作用是用来记录自己的所思所感,是一种读书和学习实践后所写的感受文字,以下是我为大家收集的数据结构心得体会(6篇),仅供参考,欢迎大家阅读。
篇一数据结构心得体会通过本次课程设计,对图的概念有了一个新的熟悉,在学习离散数学的时候,总觉得图是很抽象的东西,但是在学习了《数据结构与算法》这门课程之后,我渐渐地体会到了其中的奥妙,图能够在计算机中存在,首先要捕获他有哪些详细化、数字化的信息,比如说权值、顶点个数等,这也就说明白想要把生活中的信息转化到计算机中必需用数字来完整的构成一个信息库,而图的存在,又涉及到了顶点之间的联系。
图分为有向图和无向图,而无向图又是有向图在权值双向相等下的一种特例,如何能在计算机中表示一个双向权值不同的图,这就是一件很奇妙的事情,经过了思索和老师同学的关心,我用edges[i][j]=up和edges[j][i]=up 就能实现了一个双向图信息的存储。
对整个程序而言,Dijkstra算法始终都是核心内容,其实这个算法在实际思索中并不难,或许我们谁都知道找一个路径最短的方法,及从顶点一步一步找最近的路线并与其直接距离相比较,但是,在计算机中实现这么一个很简洁的想法就需要涉及到许多专业学问,为了完成设计,在前期工作中,基本都是以学习C语言为主,所以铺张了许多时间,比如说在程序中,删除顶点和增加顶点的模块中都有和建图模块相互重复的函数,但是由于技术的缘由,只能做一些很累赘的函数,可见在调用学问点,我没有把握好。
不过,有了这次课程设计的阅历和教训,我能够很清晰的对自己定一个合适的水平,而且在这次课程设计中我学会了运用两个新的函数sprintf()和包涵在#include头文件中的输入函数。
由于课程设计的题目是求最短路径,原来是想通过算法的实现把这个程序与交通状况相连,但是由于来不及查找各地的信息,所以,这个方案就没有实现,我信任在以后有更长时间的状况下,我会做出来的。
数据结构实验报告总结反思

数据结构实验报告总结反思引言在本学期的数据结构实验课程中,我们学习了各种常用的数据结构和算法,并进行了相应的实验操作。
通过实验,我们巩固了理论知识,并锻炼了自己的编程能力和问题解决能力。
在本次实验报告中,我将对我所学到的内容进行总结和反思,并讨论未来的学习计划和改进方法。
总结学习内容在实验课程中,我学习了以下数据结构和算法:1. 线性表:包括顺序表和链表,学会了它们的插入、删除和查找操作。
2. 栈和队列:熟悉了它们的特性和基本操作,并应用到实际问题中。
3. 二叉树:了解了树的定义和遍历方法,熟悉了二叉搜索树的操作。
4. 图:学习了图的基本概念和表示方法,实现了图的遍历和最短路径算法。
5. 排序算法:掌握了冒泡排序、选择排序、插入排序、快速排序等排序算法的原理和实现。
实验操作在每次实验中,我都认真阅读了实验指导书,并按照指导书上的要求进行了实验操作。
通过自己的努力,我成功地实现了实验要求,并得到了正确的结果。
实验操作中,我尽量养成了规范的编程习惯,包括良好的命名、合理的代码结构和注释等。
这有助于提高代码的可读性和可维护性。
实验收获通过实验,我对数据结构和算法有了更深入的理解,巩固了相关知识。
在实验过程中,我遇到了一些问题,并学会了解决它们。
同时,实验也锻炼了我的编程能力和解决问题的能力。
通过不断地思考和实践,我提高了自己的代码质量和效率,并学会了如何写出更优雅的代码。
反思遇到的问题在实验过程中,我遇到了一些问题,其中包括以下几点:1. 对于一些复杂的数据结构和算法,理解起来较为困难。
我需要花费更多的时间来学习和掌握这些内容。
2. 在某些情况下,实验指导书的说明不够清晰。
我需要仔细阅读并进行补充学习,以理解实验的要求和实现思路。
3. 在编写代码时,我有时会犯一些低级错误,比如数组越界、指针错误等。
我需要更加细心和谨慎地编写代码,以避免这些错误的发生。
改进方法为了提升自己的学习效果和编程能力,我计划采取以下改进方法:1. 增加学习时间。
数据结构实验学期总结

摘要:本学期我完成的主要实验任务有:实验一对比算法的时空效率之裴波那契序列、实验二线性表及其应用之约瑟夫环、实验三栈和队列之算术表达式求值、实验四树和二叉树之层序遍历二叉树以及实验五排序之学生成绩统计程序,文档内容为对本学期的五次实验进行概要介绍、综合分析以及自我评价。
并且对本学期所写程序提供相关数据结构理论和对本课程的相关建议。
关键字:Data Structure数据结构stack栈tree 树binary tree二叉树queue 队列linear list线性表sort排序algorithm算法正文:实验开发环境及工具:1.软件环境:Microsoft Windows 7 旗舰英文版Microsoft Visual C++6.0编译器2.硬件环境:Genuine Intel(R) CPU U2700 @ 1.30GHz1.30GHz,1.86 GB 的内存320G硬盘(含隐藏分区)物理地址扩展郑重声明:本电脑无光驱,携带相当便捷重量:1.6kg(含电池)型号:Lenovo U350实验一实验名称:实验一对比算法的时空效率之裴波那契序列实验目的及要求:1.熟悉开发工具的编程环境。
2.体会算法和程序的不同。
3.学习用不同算法实现同一程序功能,并能熟练编程实现。
4.学习分析算法。
对比不同算法实现的效率有何不同,所占空间有何不同。
对比不同算法的优点和缺点。
实验主要内容:选题题目:试编写求k阶(k>=2)裴波那契序列的第m项值的不同算法,并编程实现。
k和m均以值调用的形式在函数参数中表现。
要求:至少用两种不同的算法(如,递推、递归等等)。
当k=2时,裴波那契序列的初始两项为0、1,此后序列的每个值都是前两项之和。
当k=3时,裴波那契序列的初始三项为0、0、1,此后序列的每个值都是前三项之和,以此类推。
概要设计和存储结构:k阶(k>=2)裴波那契序列的第m项值假设为temp[m]则temp[m]=temp[m-1]+temp[m-2]+……+temp[m-k]=temp[m-1]+temp[m-2]+……+temp[m-k]+temp[m-k-1]-temp[m-k-1]=temp[m-1]+{temp[m-2]+……+temp[m-k]+temp[m-k-1]}-temp[m-k-1]}=2*temp[m-1]- temp[m-k-1]采用线性表顺序结构——数组主要算法:通过temp[m]=2*temp[m-1]- temp[m-k-1]此公式采用了循环递推以及递推的方法得出结果。
数据结构实习总结报告

数据结构实习总结【篇一:数据结构实训总结】这次课程设计的心得体会通过实习我的收获如下1、巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。
2、培养了我选用参考书,查阅手册及文献资料的能力。
培养独立思考,深入研究,分析问题、解决问题的能力。
3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。
4、通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。
从刚开始得觉得很难,到最后把这个做出来,付出了很多,也得到了很多,以前总以为自己对编程的地方还不行,现在,才发现只要认真做,没有什么不可能。
编程时要认真仔细,出现错误要及时找出并改正,(其中对英语的要求也体现出来了,因为它说明错误的时候都是英语)遇到问题要去查相关的资料。
反复的调试程序,最好是多找几个同学来对你的程序进行调试并听其对你的程序的建议,在他们不知道程序怎么写的时候完全以一个用户的身份来用对你的用户界面做一些建议,正所谓当局者迷旁观者清,把各个注意的问题要想到;同时要形成自己的编写程序与调试程序的风格,从每个细节出发,不放过每个知识点,注意与理论的联系和理论与实践的差别。
另外,要注意符号的使用,注意对字符处理,特别是对指针的使用很容易出错且调试过程是不会报错的,那么我们要始终注意指针的初始化不管它怎么用以免不必要麻烦。
通过近两周的学习与实践,体验了一下离开课堂的学习,也可以理解为一次实践与理论的很好的连接。
特别是本组所做的题目都是课堂上所讲的例子,在实行之的过程中并不是那么容易事让人有一种纸上谈兵的体会,正所谓纸上得来终觉浅绝知此事要躬行。
实训过程中让我们对懂得的知识做了进一步深入了解,让我们的理解与记忆更深刻,对不懂的知识与不清楚的东西也做了一定的了解,也形成了一定的个人做事风格。
通过这次课程设计,让我对一个程序的数据结构有更全面更进一步的认识,根据不同的需求,采用不同的数据存储方式,不一定要用栈,二叉树等高级类型,有时用基本的一维数组,只要运用得当,也能达到相同的效果,甚至更佳,就如这次的课程设计,通过用for 的多重循环,舍弃多余的循环,提高了程序的运行效率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构与算法课程学习总结
2010年 5月 17日
班级:08计本(2)班姓名:谷敏敏学号:0804012023
时光飞逝,转眼之间,经过十几周的学习,“数据结构与算法”这门课程也已经接近尾声。
通过学习、实验,我们明白“数据结构与算法”这门课是我们计算机专业人才培养计划中的一门必修的核心课程,同时也是计算机科学与技术专业同学的一门重要的基础专业课,重要之处不言而喻,所以,对于这门课大家也是比较认真投入的,学的也是比较尽心。
当然这还与老师独特的教学风格以及不少的实验训练是密不可分的。
对于本学科的知识内容的概括、总结可如下所示:
1.第一章中是介绍的本学科的的一些基础、相关概念,如数据、数据元素、数据类型
以及数据结构的定义。
其中,数据结构包括逻辑结构、存储结构和运算集合。
逻辑
结构分为四类:集合型、线性、树形和图形结构,数据元素的存储结构分为:顺序
存储、链接存储、索引存储和散列存储四类。
紧接着介绍了一些常用的数据运算。
最后着重介绍算法性能分析,包括算法的时间性能分析以及算法的空间性能分析。
2.第二章具体地介绍了顺序表的概念、基本运算及其应用。
基本运算有:初始化表、
求表长、排序、元素的查找、插入及删除等。
而关于元素查找方法课本例举了多种
方法,有:简单顺序查找、二分查找和分块查找。
排序方法有:直接插入排序、希
尔排序、冒泡排序、快速排序、直接选择排序及归并排序等。
最后介绍了顺序串的
概念以及字符处理问题,其重点核心内容在于串的模式匹配。
3.第三章介绍的是链表及其应用,链表中数据元素的存储不一定是连续的,还可以占
用任意的、不连续的物理存储区域。
与顺序表相比,链表的插入、删除等功能是不
需要移动元素的,只需变化指针的取向即可,算法简单快捷,。
链表这一章中介绍
了链表的节点结构、静态与动态链表的概念、链表的基本运算(如求表长、插入、
查找、删除等)、单链表的建立(头插法和尾插法)以及双向循环链表的定义、结
构、功能和基本算法。
4.第四章和第五章是关于堆栈和队列的介绍与应用。
堆栈与队列是两种运算受限制的
线性结构。
其基本运算方法与顺序表和链表运算方法基本相同,不同的是堆栈须遵
循“先进后出”的规则,对堆栈的操作只能在栈顶进行;而队列要遵循“先进先
出”的规则,课本中列出了两种结构的相应的基本算法,如入栈、出栈、入队、出
队等。
在介绍队列时,提出了循环队列的概念,以避免“假溢出”的现象。
同时,
对于其应用也分别讲述了如括号匹配问题等。
5.第六章介绍了特殊矩阵和广义表的概念与应用。
其中,特殊矩阵包括对称矩阵、三
角矩阵、对角矩阵和稀疏矩阵等,课本中分别详细介绍了它们的存储结构。
稀疏矩
阵的应用包括转置和加法运算等。
最后介绍了广义表的相关概念及存储结构,关于
关于广义表的应用有:m元多项式的表示问题。
6.第七章是关于二叉树及其应用。
在介绍有关概念时,提到了二叉树的性质以及两种
特殊的二叉树:完全二叉树和满二叉树。
接着介绍二叉树的顺序存储和链接存储以
及生成算法。
重点介绍二叉树的遍历算法(递归算法、先序、中序和后序遍历非递
归算法)和线索二叉树。
二叉树的应用:基本算法、哈弗曼树、二叉排序树和堆与
堆排序。
本章为本课程重点内容,需要重点掌握。
7.第八章是树与森林的介绍,本章中的树与二叉树是不同的概念。
课本中介绍了树和
森林的概念、遍历和存储结构,还有树、森林和二叉树的相互关系,树或森林怎样
转化成二叉树,二叉树又如何转换为树和森林等算法。
对其应用着重介绍了B树。
8.第九章是散列结构,散列结构是一种查找效率很高的一种数据结构。
本章的主要知
识点有:散列结构的概念及其存储结构、散列函数、两种冲突处理方法、线性探测
散列和链地址散列的基本算法以及散列结构的查找性能分析。
9.第十章介绍了图的概念及其应用,是本书的难点。
图的存储结构的知识点有:邻接
矩阵、邻接表、逆邻接表、十字链表和邻接多重表。
图的遍历包括图的深度优先搜
索遍历和广度优先搜索遍历。
其余知识点有:有向图、连通图、生成树和森林、最
短路径问题和有向无环图及其应用。
有向无环图重点理解AOV网和拓扑排序及其算
法。
关于对各章的掌握情况,从总体来来看,对教材中的知识点理解还是较全面的,当然不是很懂的盲点、不能熟练掌握的知识点也是有不少。
在第一章中,关于数据和数据结构的概念以及数据结构的逻辑结构和存储结构理解还是比较容易的,对算法的时间、空间性能分析较为模糊,不易理解。
对于第二章,顺序表的概念理解起来还是较为清晰的,关于其顺序表元素的查找算法中关于插入排序和选择排序等算法理解还好,但是,在实际运用中仍然出现明显不熟练的现象。
使用起来较为吃力,时而模糊,故还是需加强训练力度。
对于链表这一章中总体来说还是掌握非常好的,在接下来的有关堆栈以及队列的两章中主要是介绍两种的基本算法使用,以及运用堆栈和队列的一些实例应用。
总体来说队列中的循环队列有点难度,需好好理解才行。
在学习第六章时感觉较为吃力的部分在于矩阵的应用上,尤其对矩阵转置算法的C语言描述不太理解。
稀疏矩阵相加算法中,用三元组表实现比较容易理解,对十字链表进行矩阵相加的方法较为陌生,使用的也是比较少。
第七章二叉树是全书的重点,需要重点掌握的,概念理解还是比较容易的,但是关于二叉树的建立算法中使用层次遍历建立此二叉树理解起来还是有点难度,不容易搞清楚,算法也是比较繁琐,使用较多的思想是递归调用,此思想简单容易,是二叉树该章的算法设计中常用的思想。
对于哈弗曼树和二叉排序树重在理解,能够准确画出此类二叉树。
关于第八章主要是二叉树与树、森林之间的相互转化以及B树的建立,掌握好定义,还是不难的。
关于第九章散列结构这一章理解比较完善的知识点有基本概念和存储结构等。
散列函数中直接定址法和除留余数法学得比较扎实,但是对于对数字分析法等方法则感觉较为陌生,对两种冲突处理的算法思想的理解良好,主要问题在于算法的设计上面已经程序的实现。
第十章,图及其应用中,图的定义、基本运算如图的生成等起初理解还是比较容易的,毕竟我们刚学过离散数学,对于这些基础概念还是有点印象。
但随着学习深入,所要掌握研究的知识点也是越来越多,邻接矩阵、邻接表和逆邻接表掌握较好,而对十字链表和邻接多重表则感觉有点吃力,估计主要是实验时候用的比较少的缘故。
理解较为吃力的内容还有图的遍历即深度和广度优先搜索遍历,主要是算法的程序实现不容易掌握,最小生成树问题也是比较陌生的知识点,不过关于最短路径和AOV网学习起来感觉比较轻松,毕竟定义还是比较明朗的,不过C语言实现这些理解起来还是很不容易的。
学习体会,在学习这门课程之前,对本门课程的认知基本停留在这是计算机专业的入门基础课程,地位十分重要。
但是也局限于此,更深入的了解也为数不多的一点点。
不清楚本门课程究竟是研究、学习哪方面的内容,是介绍一种新的计算机语言?用途又是什么呢?怀着这些那些的问题我们走进了数据结构与算法这门学科,通过学习,理解我们明白了它的内涵与用途,数据结构与算法这门学科不是一种计算机语言,而是通过学习可以设计出良好的算法,高效地组织数据并通过C语言实现出来。
学习得算法的思想、如何更好、更快捷的设计出一个优秀的程序,算法无论采用何种语言实现,其本质基本算法思想不会改变。
故本门
学科的意义之处那是呼之欲出,整个算法设计的核心之处。
在学习这门课中,要熟悉对算法思想的一些描述手段,包括文字描述、图形描述和计算机语言描述等。
因此,计算机语言基础是必须的,即C语言还是需要好好掌握的,不然空有一套套的思想理论,但是真正使用程序来实现就不会游刃有余,困难重重。
在本门课程中一个最突出的问题在于,教材上的知识理解起来还是比较容易的,但是对于其知识的熟练灵活使用却总是差强人意,不堪入目,十分棘手不容易运行出来,对于使用教材知识来设计出一个个的算法思想有点困难的。
即使设计出来了但也是勉强实现,并不是自认为最好的算法,一些具有高技巧、思想的算法自己还是很难独立自主的设计、编写出来。
对于此种情况,我想最重要的原因还是运用的太过少的缘故,故还是需要加强训练,熟能生巧,只有这样,才能够更容易的设计出高超、快捷及有效的算法。
对于本门课的教学建议,由于本门课程是关于算法设计思想的一门学科,地位在计算机这专业中占有举足轻重的位置,故建议是否在课堂中可以适当的加大一些课程作业典型例题分析讲解的次数,而不仅仅是只重在书本上的知识点的讲解与其中的一些应用,毕竟对知识点的灵活运用是非常重要的,可以通过讲解来使大家更容易的掌握,理解这门学科。
当然这也需要大量的练习来巩固,毕竟理工科类专业还是需要大量的动手、实践操作来更深层次的掌握理解。
以上便是我对《数据结构与算法》这门课的学习总结,学习体会以及教学建议。
也许有的观念、建议差强人意,可毕竟是一家之言,如有不当,还请老师多多包涵。