数据结构
文章平均质量分 61
LP9127
这个作者很懒,什么都没留下…
展开
-
堆
一、堆的初始化 1、堆的概念 堆实际上是一种完全二叉树,堆可分为大堆和小堆。大堆就是左右孩子的值都小于其父节点的值,根节点的值最大;小堆就是左右孩子的值都小于其父节点的值,根节点的值最小。 2、建堆 第一步:先给出一个数组 第二步:根据该数组,将其构建成完全二叉树的结构 第三步:以这个完全二叉树为基础构造初始堆,从最后一个非叶子节点开始向上调整,这里以小堆为例 这里对以上调整过原创 2017-02-26 16:51:17 · 1245 阅读 · 1 评论 -
栈
在这篇文章中,简单介绍一下栈和队列的原理及实现,后面会附上相应习题帮助进一步理解。一、简述栈1、概念栈是一种操作受限的线性表,它的限制在于只能在表尾进行插入或删除,其中表尾称为栈顶,表头称为栈底。2、特点栈的特点是“先进后出”3、实现(C++)在下述代码中简单实现了栈的“入栈、出栈、取栈顶元素、判栈空,求栈中有效元素的大小”等操作。具体实现代码如下:#include <iostre原创 2017-02-19 09:14:31 · 343 阅读 · 0 评论 -
快速排序
一、快速排序简述 1、快速排序是对冒泡排序的一种改进; 2、快速排序是由C.A.RHoare于1962年提出的; 3、快速排序的基本思想 (1)先找到一个基准值; (2)将所有比基准值小的数放在基准值的左边区域,所有比基准值大的数放在基准值的右边区域,等于基准值的数可放在左右任一区域; (3)对左右区域按照上述方法分别进行排序,整个快速排序可以递归进行,直到数据有原创 2017-03-11 20:43:29 · 469 阅读 · 0 评论 -
链表带环问题
1、判断链表是否带环基本思路:定义两个指针,一个快指针,一个慢指针,快指针一次走两步,慢指针一次走一步,当两个指针重合的时候,说明该链表是带环的,当快指针为空或者快指针的下一个节点为空,说明是不带环的。 代码实现/** * Definition of ListNode * class ListNode { * public: * int val; * ListNode *原创 2017-07-16 10:26:28 · 457 阅读 · 0 评论 -
STL一级空间配置器
提纲:本文主要分析STL一级空间配置器的源代码并模拟实现一级空间配置器 一、什么是STL STL(standard Template Library,标准模板库),是算法和一些组件的结合,STL有六大组件,彼此可以组合套用,六大组件分别是 1、容器(containers):各种数据结构,如vector,list,deque,set,map等,用来存放数据。 2、算法(algorithms)...原创 2017-03-25 22:49:37 · 551 阅读 · 0 评论