数据结构期末总结 数据结构期末总结与反思(3篇)_第1页
数据结构期末总结 数据结构期末总结与反思(3篇)_第2页
数据结构期末总结 数据结构期末总结与反思(3篇)_第3页
数据结构期末总结 数据结构期末总结与反思(3篇)_第4页
数据结构期末总结 数据结构期末总结与反思(3篇)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——数据结构期末总结数据结构期末总结与反思(3篇)工作学习中一定要善始善终,只有总结才标志工作阶段性完成或者完全的终止。通过总结对工作学习进行回想和分析,从中找出经验和教训,引出规律性认识,以指导今后工作和实践活动。大家想知道怎么样才能写一篇比较优质的总结吗?以下是我为大家收集的总结范文,仅供参考,大家一起来看看吧。

数据结构期末总结数据结构期末总结与反思篇一

在这次课程设计当中,我了解到了我的不足,如算法的不完善、不细心和耐心不是很好等等。不细心的我在调试程序时,老是由于某个书写错误导致错误;对这些错误,我不得不花大量的时间去更正,并且还要重复检查是否出现雷同的错误而导致程序不能运行。但是通过这次课程设计,我的这些缺点有些改善。我在写新的程序时,首先要考虑的深入一点、细心一点,这样要修改程序的时间就会少好多。并且也不会由于自己不细心而导致的浪费时间的状况出现。

在进行程序设计时,要注意想好思路。即要有恰当模块名、变量名、常量名、子程序名等。将每个功能的模块,即函数名要明了的表述出来,使用户能够一目了然此程序的功能。当然适当的给写解释,也是便利用户的理解。还有在编写程序时要注意对程序的适当分派,便于用户看懂程序,也便于自己检查城市。但是完成任何一个较大的程序,都需要把握一定的编程基础,需要不断的摸索和求知过程,这样对自己编程能力的提高有较大的帮助。当然,任何程序必需经过计算机的调试,看是否调试成功,发现错误,一个个,一步步去解决,这样就能从错误中进步。

通过课程设计加强了我的动手能力,以及提升了局部和统一考虑问题的思维方式。回想起此次课程设计,至今我仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到好多好多的的东西,同时不仅可以稳定了以前所学过的知识,而且学到了好多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这终究第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,把握得不够稳固,譬如说结构体通过这次课程设计之后,一定把以前所学过的知识重新温故。

通过这次的课程设计,我学到了怎么样从一个实际问题出发,建立模型,找到相应的存储结构和实现方法,实际运行,反复调试和修改,最终实现功能。在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练,学会数据组织的方法,把现实世界中的实际问题在计算机内部表示出来并用软件解决问题,培养了良好的程序设计技能。

在这次课程设计中,得到了好多同学的帮助以及老师的指导,在此要表达我真诚的谢意!

数据结构期末总结数据结构期末总结与反思篇二

树是由n个结点组成的有限集合,且只有一个结点是树的根结点,其余结点不相交。

树的规律表达方法:树形表示法、文氏图表示法、凹入表示法、括号表示法。

1、结点的度与树的度:树中某个结点的子树的个数称为该结点的度,树中所有结点的度中最大的为树的度。

2、分支结点与叶子结点:度为0的是叶子结点,度为1的为单支结点、度为2的为双分支结点

3、路径长度是该路径所通过的结点数目减1

4、孩子结点、双亲结点、兄弟结点

5、结点层次(从树根开始定义),树中结点最大的层次称为树的高度或树的深度

6、有序树和无序树

7、森林:n个互不相交的树称为森林,把多个子树的根去掉就是森林

数据结构期末总结数据结构期末总结与反思篇三

数据结构心得体会

数据结构学习总结

通过一学期对《数据结构与算法》的学习,大约的了解了基本的数据结构和相应的一些算法。下面总结一下自己一个学期学习的收获和心得。数据结构是什么:

数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。寻常状况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。数据结构重要性:

一般认为,一个数据结构是由数据元素依据某种规律联系组织起来的。对数据元素间规律关系的描述称为数据的规律结构;数据必需在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示;此外探讨一个数据结构必需同时探讨在该类数据上执行的运算才有意义。一个规律数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率。在大量类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。大量大型系统的构造经验说明,系统实现的困难程度和系统构造的质量都严重的依靠于是否选择了最优的数据结构。大量时候,确定了数据结构后,算法就简单得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不管哪种状况,选择适合的数据结构都是十分重要的。选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。这种洞见导致了大量种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。

常见的数据结构:1.顺序表:

定义:顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。

基本运算:

置表空:sqlsetnull(l)判表满:sqlempty(l)

求表长:sqllength(l)插入:sqlinsert(l,i,x)按序号取元素:sqlget(l,i)删除:sqldelete(l,i)按值查找:sqllocate(l,x)2.链表

定义:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的规律顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。相比于线性表顺序结构,链表比较便利插入和删除操作。分类:单链表—用一组地址任意的存储单元存放线性表中的数据元素。

循环链表—循环链表是另一种形式的链式存贮结构。它的特点是表中最终一个结点的指针域指向头结点,整个链表形成一个环。基本运算:建立链表,插入节点,删除节点。3.堆栈

定义:堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。要点:堆:顺序随意栈:后进先出(last-in/first-out)。

基本算法:

置空栈:initstack(s)判栈空:stackempty(s)

判栈满:stackfull(s)取栈顶元素:gettop(s)

入栈:push(s)出栈:pop(s)4.队列

定义:队列是一种特别的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。在队列这种数据结构中,最先插入的元素将是最先被删除的元素;反之最终插入的元素将最终被删除的元素,因此队列又称为“先进先出〞(fifo—firstinfirstout)的线性表。

分类:顺序队列;链队;

基本运算:初始化队列qini(q)入队qadd(q,x)

出队qdel(q,x)判断队列是否为qempty(q)

判断队列是否为满qfull(q)5.特别矩阵

分类:对阵矩阵;三角矩阵;稀疏矩阵;6.二叉树定义:二叉树是每个节点最多有两个子树的有序树。寻常子树被称作“左子树〞(leftsubtree)和“右子树〞(rightsubtree)。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2的i-1次方个结点;深度为k的二叉树至多有2^(k)-1个结点;对任何一棵二叉树t,假使其终端结点数(即叶子结点数)为n0,度为2的结点数为n2,则n0=n2+1。

(1)完全二叉树——若设二叉树的高度为h,除第h层外,其它各层(1~h-1)的结点数都达到最大个数,第h层有叶子节点,并且叶子节点都是从左到右依次排布,这就是完全二叉树。

(2)满二叉树——除了叶结点外每一个结点都有左右子叶且叶结点都处在最底层的二叉树,。

(3)深度——二叉树的层数,就是高度。

性质:

(1)在二叉树中,第i层的结点总数不超过2^(i-1);

(2)深度为h的二叉树最多有2^h-1个结点(h=1),最少有h个结点;(3)对于任意一棵二叉树,假使其叶结点数为n0,而度数为2的结点总数为n2,则n0=n2+1;

(4)具有n个结点的完全二叉树的深度为int(log2n)+1

(5)有n个结点的完全二叉树各结点假使用顺序方式存储,则结点之间有如下关系:若i为结点编号则假使i1,则其父结点的编号为i/2;假使2*i=n,则其左儿子(即左子树的根结点)的编号为2*i;若2*in,则无左

儿子;假使2*i+1=n,则其右儿子的结点编号为2*i+1;若2*i+1n,则无右儿子。

(6)给定n个节点,能构成h(n)种不同的二叉树。h(n)为卡特兰数的第n项。h(n)=c(n,2*n)/(n+1)。

(7)设有i个枝点,i为所有枝点的道路长度总和,j为叶的道路长度总和j=i+2i。

二叉树遍历:

遍历是对树的一种最基本的运算,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访问一次,而且只被访问一次。由于二叉树是非线性结构,因此,树的遍历实质上是将二叉树的各个结点转换成为一个线性序列来表示。设l、d、r分别表示遍历左子树、访问根结点和遍历右子树,则对一棵二叉树的遍历有三种状况:dlr(称为先根次序遍历),ldr(称为中根次序遍历),lrd(称为后根次序遍历)。

(1)前序遍历访问根;按前序遍历左子树;按前序遍历右子树(2)中序遍历按中序遍历左子树;访问根;按中序遍历右子树(3)后序遍历按后序遍历左子树;按后序遍历右子树;访问根

(4)层次遍历即依照层次访问,寻常用队列来做。访问根,访问子女,再访问子女的子女(越往后的层次越低)(两个子女的级别一致)。7.散列

定义:若结构中存在和关键字k相等的记录,则必定在f(k)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数(hashfunction),按这个思想建立的表为散列表。

散列函数:直接定址法;除留余数法;数字分析法;平方取中法;折叠法。冲突处理方法:开放地址法(线性探测再散列,二次探测再散列,伪随机探测再散列)链地址法。8.图

定义:一种较线性表和树更为繁杂的数据结构。存储结构:邻接矩阵;邻接表;逆邻接表;十字链表;邻接多重表。图的遍历:

深度优先遍历:深度优先遍历的思想类似于树的先序遍历。其遍历过程可以描述为:从图中某个顶点v出发,访问该顶点,然后依次从v的未被访问的邻接点出发继续深度优先遍历图中的其余顶点,直至图中所有与v有路径相通的顶点都被访问完为止。

广度优先遍历:对图的广度优先遍历方法描述为:从图中某个顶点v出发,在访问该顶点v之后,依次访问v的所有未被访问过的邻接点,然后再访问每个邻接点的邻接点,且访问顺序应保持先被访问的顶点其邻接点也优先被访问,直到图中的所有顶点都被访问为止。下面是对一个无向图进行广度优先遍历的过程。

查找算法

原理是让关键字与队列中的数从第一个开始逐个比较,直到找出与给定关键字一致的数为止。

否则利用中间位置记录将表分成前、后两个子表,假使中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。

分:先对索引表进行二分查找或顺序查找,以确定待查记录在哪一块中;然后,在已确定的块中用顺序法进行查找。4.二叉排序树:

定义:二叉排序树(binarysorttree)又称二叉查找树。它或者是一棵空树;或者是具有以下性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;

查找:若根结点的关键字值等于查找的关键字,成功。否则,若小于根结点的关键字值,递归查左子树。若大于根结点的关键字值,递归查右子树。若子树为空,查找不成功。

排序算法:

是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最终一个元素除外,而其次部分就只包含这一个元素。在第一部分排序后,再把这个最终元素插入到此刻已是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论