- 博客(20)
- 资源 (2)
- 收藏
- 关注
原创 课程笔记 17:数据结构(清华) 图-遍历
我们之前研究的树结构是一种半线性结构,为了利用之前研究相对成熟的线性结构如向量、列表,我们会采用遍历手法来将树转化为线性结构来研究。同样的,在研究图这一非线性结构时,我们同样可以通过遍历手法将其转化为非线性结构——树来研究。
2015-07-28 15:09:36
639
原创 课程笔记 16:数据结构(清华) 图-邻接矩阵
对于有向平凡图,只需使用邻接矩阵就可以轻松的表示出点与点之间的连边关系。有了前面所述的graph、vertex、edge类型,我们就可以实现邻接矩阵了。
2015-07-27 20:12:04
602
原创 课程笔记 15:数据结构(清华) 图
我们以下所讨论的图假定为不带自环的简单图,并且以有向边表达所有的连边。利用图论的知识,我们可以采用邻接矩阵来表示点与点之间的连边关系。设一个图具有n个顶点,则可以使用一个n*n的方阵来表示从点i到点j之间是否存在有向边。为了方便操作邻接矩阵,我们需要图(graph)、顶点(vertex)、边(edge)三种数据类型来描述一个完整的图结构。
2015-07-27 17:37:12
530
原创 课程笔记 14:数据结构(清华) 二叉树-遍历
如前所述,二叉树的遍历一般有四种,即层次、先序、中序、后序。鉴于后序遍历与先序遍历基本构思相同,故这里只就前三种遍历方式作讨论。
2015-07-26 20:40:58
785
原创 课程笔记 12:数据结构(清华) 二叉树-节点
二叉树是树的一种特例。若所有节点的孩子个数(度)不超过2,则称之为二叉树。虽然二叉树只是一种特例,但是它已经足以用来表示所有的树了。当我们将一棵树定义为有根有序树时,可将每个节点的长子作为其左子树,其相邻的兄弟作为右孩子,如此一来就可以表示所有的有序有根树了。
2015-07-26 11:30:41
1333
原创 课程笔记 11:数据结构(清华) 栈与队列
与栈一样,队列也是存放数据对象的一种容器,其中的数据对象也按线性的逻辑次序排列。队列结构同样支持对象的插入和删除,但两种操作的范围分别被限制于队列的两端若约定新对象只能从某一端插入其中,则只能从另一端删除已有的元素。允许取出元素的一端称作队头(front),而允许插入元素的另一端称作队尾(rear)。
2015-07-25 20:33:45
329
原创 课程笔记 10:数据结构(清华) 栈
栈是一种特殊的线性序列,元素只能从顶端进入,在从顶端弹出,而对栈的底端则不能进行任何操作。因此,栈是一种具有后进先出特点的数据结构。
2015-07-25 20:07:07
542
原创 课程笔记 06:数据结构(清华) 列表-节点
列表是与向量相对应的另一种线性结构。与向量的顺序式存储不同,列表采用的是有每个节点间的相互引用构成的链式存储。列表的节点包含了数据域和指针域两部分。下面具体介绍抽象数据类型——列表节点(ListNode)
2015-07-20 21:46:09
1245
原创 课程笔记 03 :数据结构(清华) 向量
通过学习有序向量与无序向量在去重算法的设计思路上的差别,我找到了提升算法性能的方法。此外,我还记录了遍历算法的通用模板。
2015-07-17 17:21:29
575
原创 课程笔记 04 :数据结构(清华) 向量-查找算法
经过对二分查找的性能分析,提出了采用黄金分割的fibonacci查找算法。此外,还针对二分查找提出了两个改进版本
2015-07-17 13:05:35
1147
1
原创 课程笔记 01:数据结构(清华) 绪论
这是我学习清华大学邓俊辉老师开设的数据结构课程的心得体会。关于第一章绪论部分,我最深刻的体会是:1.计算机科学的终极目标是实现高效、低耗的计算。为此,我们需要设计出优良的数据结构来高效的利用计算机存储、组织、转化和传递数据。2.计算是用来解决问题的手段,而算法则是解决问题的根本。因而,我们要在设计出正确的算法的同时,努力的降低相关计算的成本。因此,我们最关心的问题是:1.如何判断算法的正确性,即能否反映问题的需求并给出合理的答案?2.如何科学的估计(定性或定量)一套算法所产生的成本?
2015-07-12 23:34:29
490
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人