
慢速学数据结构
文章平均质量分 69
学习要细致,不能囫囵吞枣,这样才能一次掌握。
希望之力
保持热情,给人们带来光明把
展开
-
【慢速学数据结构】排序
前言刚开始学的时候,一般都是几大排序一起看,看着看着就晕了,觉得很难。其实没学会的原因只有一个,那就是自己打击了自己的积极性。如果你心里对它们还存有畏难情绪的话,不妨先看看这些视频,匈牙利民间舞模拟各种排序,很滑稽;) 地址快速排序这代码够简洁了吧!void quickSort(std::vector<int> &a, int left, int right){ if(left < rig原创 2016-07-20 17:18:23 · 569 阅读 · 0 评论 -
【慢速学数据结构】树的遍历
这虽然是个easy的话题,但我们还是要争取写出简洁和优雅的代码。递归形式:前中后序对应的是print的位置,这里只写前序遍历。void traverse(TreeNode *t){ if(!t) return; print(t->val); traverse(t->left); traverse(t->right);}非递归形式:// 前序遍历void iter原创 2016-07-20 15:46:11 · 731 阅读 · 0 评论 -
【慢速学数据结构】图篇
介绍图,是由一个顶点集和一个边集构成的数据结构。怎么在程序里表示图?有两种方法,邻接矩阵和邻接表。虽然用邻接矩阵表示非常简单,但它也有些不可忽视的缺点。比如矩阵的大小不好提前预知,动态数组的话又不好实现。如果图是稀疏的话,也造成空间浪费。邻接表就要好很多。实现数据结构要怎么设计?先试着去写一下最基本的东西。 顶点。template<typename Vt, typename Et>clas原创 2016-07-20 11:14:55 · 691 阅读 · 0 评论 -
【慢速学数据结构】查找树篇
二叉查找树(排序二叉树),是一种支持快速查找、插入、删除的数据结构。原创 2016-07-15 18:48:15 · 599 阅读 · 0 评论 -
【慢速学数据结构】散列篇
散列表(哈希表),是一个关联数组,由key(关键字),value(值)组成,通过hash函数,将key计算成统一形式的不同的值,对应到数组的索引上。原创 2016-07-15 18:47:33 · 965 阅读 · 0 评论 -
【慢速学数据结构】队列篇
概述队列ADT我相信大家都很清楚,就是FIFO嘛。这一篇,关键讲队列怎么实现。实现循环数组实现。原创 2016-07-15 01:38:27 · 650 阅读 · 0 评论 -
【慢速学数据结构】集合(并查集)篇
上一篇实现的集合其实没什么卵用,跟个vector似的。并查集就比它厉害多了。原创 2016-07-14 00:30:36 · 541 阅读 · 0 评论 -
【慢速学数据结构】集合篇
集合ADT,表示一种非顺序容器,且容器内的元素不重复。原创 2016-07-13 15:00:47 · 679 阅读 · 0 评论 -
【慢速学数据结构】优先队列(堆) 篇
什么是堆呢?堆是一种基于树的数据结构,并且具有堆序性质。堆序性是指,父节点与孩子节点的关键字的值,始终维持一个顺序关系。因此,最典型的有最大堆或最小堆。原创 2016-07-12 01:04:48 · 834 阅读 · 0 评论