数据结构年终总结

来源:互联网 发布:赖宁的真正死因 知乎 编辑:程序博客网 时间:2024/05/22 11:56

  年华似水、岁月如梭、时光如水,时光飞逝,光阴似箭,光阴荏苒,日月如梭,转瞬即逝,斗转星移,流星赶月,日月如流,寒来暑往,时不我待,年深日久 ,似水流年,时日如飞,流星赶月,逝者如斯,白驹过隙,碎玉如梭,不知不觉中。。。

  我们已经跟随贺老学习了一个学期的数据结构课程,在这一个学期中,贺老教给我们的不仅是知识,更重要的是教给了我们学习的方法和技巧,从传统课堂到翻转课堂,从死板看书到课前视频,从书面作业到手机自测,从课堂笔记到撰写博客……,我们从老师身上学习了很多之前并没接触过的学习方式,这让我们不在局限于课本和课堂,可以在课余自由分配自己的学习时间,不至于到邻近期末时手忙脚乱。

 线性表是最常用且最简单的一种数据结构,它是n个数据元素的有限序列。实现线性表的方式一般有两种,一种是使用数组存储线性表的元素,即用一组连续的存储单元依次存储线性表的数据元素。另一种是使用链表存储线性表的元素,即用一组任意的存储单元存储线性表的数据元素(存储单元可以是连续的,也可以是不连续的)。链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列节点组成,这些节点不必在内存中相连。每个节点由数据部分Data和链部分Next,Next指向下一个节点,这样当添加或者删除时,只需要改变相关节点的Next的指向,效率很高。

  栈是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫作栈顶,对栈的基本操作有push(进栈)和pop(出栈),前者相当于插入,后者相当于删除最后一个元素。栈有时又叫作LIFO(LastInFirst Out)表,即后进先出。队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

  树 是由n(n>=1)个有限节点组成一个具有层次关系的集合。它具有以下特点:每个节点有零个或多个子节点;没有父节点的节点称为 根 节点;每一个非根节点有且只有一个父节点 ;除了根节点外,每个子节点可以分为多个不相交的子树。

  在二叉树的一些应用中,常常要求在树中查找具有某种特征的节点,或者对树中全部节点进行某种处理,这就涉及到二叉树的遍历。二叉树主要是由3个基本单元组成,根节点、左子树和右子树。如果限定先左后右,那么根据这三个部分遍历的顺序不同,可以分为先序遍历、中序遍历和后续遍历三种。

(1) 先序遍历 若二叉树为空,则空操作,否则先访问根节点,再先序遍历左子树,最后先序遍历右子树。 (2) 中序遍历 若二叉树为空,则空操作,否则先中序遍历左子树,再访问根节点,最后中序遍历右子树。(3) 后序遍历 若二叉树为空,则空操作,否则先后序遍历左子树访问根节点,再后序遍历右子树,最后访问根节点。

 查找又称检索,是指在某种数据结构中找出满足给定条件的元素。包括顺序查找,折半查找,分块查找,二叉排序树的查找,哈希表的查找等。哈希函数的构造方法有直接定址法,除留余数法,数字分析法等。哈希冲突的解决办法有开放定址法,拉链法等。

  排序则有插入排序包括直接插入排序,折半插入排序,希尔排序。交换排序包括冒泡排序,快速排序。选择排序包括简单的选择排序,堆排序。归并排序。基数排序。

 

  数据结构,在还没学习之前我还天真的以为是门类似高数、离散的数学课,当开始接触这门课后我才明白这是门基于C/C++的编程课程的算法课程,也是门学习计算机专业的必修课程,学好这门课程将为我们接下来的学习和工作打下坚实的基础,让我们能在以后的IT道路上越走越远。

  最后,十分感谢贺老这个学期的教导,希望我们能跨越师生的界限。。。。。。成为一生的朋友。大笑

 


原创粉丝点击