数据结构
Elylicery
这个作者很懒,什么都没留下…
展开
-
数据结构探险(一)——队列
FIFO普通队列循环队列c++实现循环队列#ifndef MYQUEUE_H#define MYQUEUE_H/****************************************//*环形队列C++实现*//****************************************/class MyQueue{public: MyQueue(int...原创 2018-12-28 20:45:04 · 199 阅读 · 0 评论 -
玩转数据结构(七)集合和映射
7-1 集合基础和基于二分搜索树的集合实现回忆上一小节的二分搜索树中,不能存放重复元素,所以这就是一个非常好的实现“集合”的底层数据结构集合public interface Set<E> { void add(E e); void remove(E e); boolean contains(E e); int getSize(); ...原创 2019-07-11 14:52:53 · 188 阅读 · 0 评论 -
玩转数据结构(三)栈和队列
3-1 栈和栈的应用:撤销操作和系统栈栈也是一种线性结构相比数组,栈对应的操作时数组的子集只能从一端添加元素,也只能从一端取出元素,这一端叫栈顶3-2 栈的基本实现3-3 栈的另一个应用:括号匹配3-4 关于leetcode的说明3-5 数组队列3-6 循环队列3-7 循环队列的实现3-8 数组队列和循环队列的比较...原创 2019-06-30 17:54:02 · 169 阅读 · 0 评论 -
玩转数据结构(二)不要小瞧java中的数组
2-1 使用java中的数组数组基础把数据码成一排进行存放(注意索引从0开始)public class Array_Basic { public static void main(String[] args) { //1声明数组,开辟空间 int[] arr = new int[10]; for (int i = 0;i<...原创 2019-06-28 18:23:42 · 380 阅读 · 0 评论 -
玩转数据结构(九)线段树
线段树是一种特殊的树结构。这种数据结构主要用于解决“线段”或者是“区间”这种特殊的数据,是算法竞赛中的常客。在这一章,我们将从底层实现属于我们自己的线段树,完成线段树的创建,查询,更新三个操作,并且通过实际比较,看到线段树解决“线段”相关问题的巨大优势。9-1 什么是线段树(区间树)对于有一类问题,我们关心的是线段(或者区间)最经典的线段树问题:区间染色另一类经典问题:区间...原创 2019-07-13 14:02:36 · 150 阅读 · 0 评论 -
玩转数据结构(五)链表和递归
5-1 Leetcode中和链表相关的问题5-2 测试自己的Leetcode链表代码5-3 递归基础与递归的宏观语意5-4 链表的天然递归结构性质5-5 递归运行的机制:递归的微观解读5-6 递归算法的调试5-7 更多和链表相关的问题...原创 2019-07-03 17:11:18 · 355 阅读 · 0 评论 -
玩转数据结构(六)二分搜索树
6-1 为什么要研究树结构6-2 二分搜索树基础6-3 向二分搜索树中添加元素6-4 改进添加操作:深入理解递归终止条件6-5 二分搜索树的查询操作6-6 二分搜索树的前序遍历6-7 二分搜索树的中序遍历和后序遍历6-8 深入理解二分搜索树的前中后序遍历6-9 二分搜索树前序遍历的非递归实现6-10 二分搜索树的层序遍历6-11 删除二分搜索树的最大元素和最...原创 2019-07-08 22:25:29 · 200 阅读 · 0 评论 -
玩转数据结构(四)最基础的动态数据结构:链表
4-1 什么是链表4-2 在链表中添加元素4-3 使用链表的虚拟头结点4-4 链表的遍历,查询和修改4-5 从链表中删除元素4-6 使用链表实现栈4-7 带有尾指针的链表:使用链表实现队列...原创 2019-07-01 23:42:36 · 159 阅读 · 0 评论 -
玩转数据结构(一)玩转数据结构介绍
为什么要学习数据结构数据结构研究的 是数据如何在计算机中进行组织和存储,使得我们可以高效的获取数据或者修改数据。在计算机的世界中,数据结构无处不在。数据结构+算法=程序课程设置面向基础:递归,调试,复杂度分析手把手的底层实现,创建属于自己的小型数据结构库强调比较和优化面向面试(前六个DS数组,栈,队列,链表,二分搜索树,堆,线段树,Trie更为重要,达到白板编...原创 2019-06-26 09:58:09 · 307 阅读 · 0 评论 -
数据结构探险(五)—— 图
图的表示法图的遍历最小生成树(非常有价值)图的应用:路程规划,工程规划,战略规划图的存储结构对于有向图:一条弧,有弧头,弧尾,权值邻接矩阵–数组存储顶点的表示方法:顶点索引+顶点数据弧的表示方法:邻接矩阵 int matrix[4][4];【注】对于无向图的邻接矩阵是对称的,为了节省空间,可以只记录下三角或者上三角的部分邻接表–链式存储顶点的表示方法:顶...原创 2019-01-29 21:52:35 · 184 阅读 · 0 评论 -
数据结构探险(四)—— 树
树是节点的有限集合树的用途:压缩软件 哈夫曼树;人机对战(不断做树得搜索);二叉树(数组表示)c语言表示:原创 2019-01-06 15:50:44 · 159 阅读 · 1 评论 -
数据结构探险(二)——栈
demo说明栈原理,其中放入char类型先进后出(FILO)栈顶 栈底改造栈,使其适用于复杂数据类型Coordinate#ifndef COORDINATE_H#define COORDINATE_H#include<ostream>using namespace std;class Coordinate{public: Coordinate(in...原创 2018-12-30 21:01:48 · 276 阅读 · 1 评论 -
数据结构探险(三)—— 线性表
线性表是n个数据元素的有限序列线性表分为:顺序表(数组):特点是访问速度快,搜索能力强链表:静态链表,单链表,循环链表,双向链表应用场景:通讯录;一元多项式;线性表c语言表示:#ifndef LIST_H#define LIST_Htypedef int Elem;class List{public: List(int size); //构造函数 ...原创 2019-01-04 15:37:50 · 204 阅读 · 0 评论 -
玩转数据结构(八)优先队列和堆
8-1 什么是优先队列8-2 堆的基础表示8-3 向堆中添加元素和Sift Up8-4 从堆中取出元素和Sift Down8-5 Heapify 和 Replace8-6 基于堆的优先队列8-7 Leetcode上优先队列相关问题8-8 Java中的PriorityQueue8-9 和堆相关的更多话题和广义队列...原创 2019-07-12 12:50:02 · 172 阅读 · 0 评论