数据结构学习笔记
杨小贤
摸鱼怪,随缘写
展开
-
【数据结构学习笔记】一些排序算法和它们的优化
记一下一些排序算法,有一些算法之后会补充灰色的表示待排序的数组,白色表示已经排序完成的。选择排序选择排序通过找出最大的元素,把它移到a[n-1],然后在余下的n-1个元素中继续找到最大的元素,移到a[n-2],一直循环,直到剩下一个元素。例第一行是初始数组,第一次对a[0:5]进行循环,先找到最大数字8在a[2],将其移到a[5];然后第二次对a[0:4]进行循环,找到最大的数...原创 2018-09-11 15:56:38 · 167 阅读 · 0 评论 -
【数据结构学习笔记】二叉树
基础定义一个树t是一个非空的有限元素的集合,其中一个元素为根(root),其余的元素(如果有的话)组成t的子树(subtree)树的另一常用术语为级(level)。树根是1级,其孩子(如果有)是2级,孩子的孩子是3级,等等。一棵树的高度(height)或深度(depth)是树中级的个数一个元素的度(degree of an element)是指其孩子的个数。一棵树的度是其元素的...原创 2018-09-16 10:23:22 · 498 阅读 · 0 评论 -
【数据结构学习笔记】队列和栈
栈定义和应用定义:栈(stack)是一种特殊的线性表,其插入(也称入栈或压栈)和删除(也称出栈或弹栈)操作都在表的同一端进行。这一端称为栈顶(top),另一端称为栈底(bottom)。从定义可知,栈是个后进先出(LIFO)的表。C++标准类模板库(STL)中的栈的功能:template<class T>class stack{ public: ...原创 2018-09-15 09:22:26 · 121 阅读 · 0 评论 -
【数据结构学习笔记】优先级队列
概念优先级队列是0个或多个元素的集合,每个元素都有一个优先权值。在最小优先级队列中,查找和删除的元素都是优先级最小的元素;在最大优先级队列中,查找和删除的元素都是优先级最大的元素。优先级队列元素可以有相同的优先级,这时候查找与删除可以按任意顺序处理。抽象类:template<class T>class maxPriorityQueue{ public: ...原创 2018-09-23 10:49:41 · 567 阅读 · 0 评论