摘要:
堆,与其说是一种数据结构,不如说是一种排序算法。用堆算法,可以轻松得到一组数据中最大的或最小的元素。
其结构就是完全二叉树的顺序存储方式。即在一个数组中存储一颗完全二叉树。
通常,堆分为"大根堆"和"小根堆",前者的树顶元素是数组中最大的一个,后者是最小的一个。
阅读全文
摘要:
大家知道,STL最最主要,也是最最常用的部分就是泛型容器和范型算法。而联系起这两大部分的,就是iterator(迭代器)。
迭代器大体分为这么几类(级别从低到高)
只读迭代器input_iterator
只写迭代器output_iterator
forward_iterator,这个其实是允许写入型算法在其所形成的区间上做读写操作
双向移动可读写bidirectional_iterator
随机访问迭代器random_access_iterator
阅读全文
摘要:
刚发现,以前用vector觉得挺简单的,自己实现一下才知道这么麻烦。真是佩服那些C++大师,写出这么好的东西。
这算是一个简易的vector吧,之所以说它简易,并不是因为功能少,而是实现的复杂度远远不及std::vector
但基本原理是一样的
阅读全文
摘要:
其实图的存储结构很简单,常见的就是邻接表和邻接矩阵。
个人觉得,比较负责的是求最短路径之类的算法。
下面先发一个基础版的,实现了深度和广度优先遍历。
阅读全文
摘要:
1、带头尾节点的双链表 更新日志:08.10.07,将Iterator insert(const T& data);改为void push_back(const T& data); 修改了一处bug 2、循环队列 3、无向图--初级版 4、变长数组 5、堆 阅读全文
摘要:
实现队列的方法很多,比如动态数组、链表,今天主要介绍循环队列
首先说用静态数组实现简单队列。
阅读全文
摘要:
最近要考数据结构了,哎,这么大了还考试,真烦。既然自己干这行的,数据结构又是那么基础和必要的东西,所以决定把一些数据结构用C++重写一遍,也算是加深学习吧。
说实话,真是没怎么写过这么基础的数据结构,如果有什么缺陷请大家多多提意见。日后还会继续写其他的
阅读全文
摘要:
怎么样,看起来不错吧。 材料:土豆、丘比沙拉酱、火腿肠、金枪鱼罐头、水果 制作方法:嘿咻~嘿咻~主要是力气活 阅读全文