排序:
默认
按更新时间
按访问量

数据结构知识点复习

一、数据结构和算法: 栈和队列面试题: 1.模拟实现stack 2.模拟实现queue 3.一个数组实现两个栈 4.用两个队列实现一个栈 5.用两个栈实现一个队列 6.实现一个返回最小值的栈 7.判断元素出栈、入栈顺序的合法性二叉树相关面试题 1.二叉树的递归实现(前序,中序,后...

2017-11-29 15:34:47

阅读数:108

评论数:0

操作系统内存管理之 ---堆和栈的区别

一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分 (从上到下,从内存高地址到内存低地址) 1、栈区(stack) — 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若...

2017-11-14 01:52:40

阅读数:152

评论数:0

链表相关面试题总结大全

链表面试题大全://1.删除有序链表中重复的结点,然后返回新链表的头结点 //由于要返回新链表的头结点,所以要定义一个指针,保存新链表的头结点; //然后定义三个指针,分别记录已删除重复结点的尾结点,当前结点,当前结点的上一个结点; // #include<iostream> usin...

2017-09-18 13:43:57

阅读数:360

评论数:0

排序总结(比较排序)

1.快速排序 2.冒泡排序 3.直接插入排序 和 希尔排序 4.归并排序 5.选择排序 和 堆排序

2017-11-29 17:54:53

阅读数:107

评论数:0

c++小知识点--this指针与const

转载: http://www.cnblogs.com/little-sjq/p/9fed5450f45316cf35f4b1c17f2f6361.html

2017-09-14 10:30:32

阅读数:162

评论数:0

基于哈夫曼编码的文件压缩

//Heap.h//堆类 #pragma once #include<iostream> using namespace std; #include<vector> #include<cassert> //仿函数(函数对象)--建小堆 template<t...

2017-09-14 00:29:39

阅读数:222

评论数:0

红黑树【RBTree】

一、红黑树简介红黑树是一棵二叉搜索树,它在每个节点上增加了一个存储位来表示节点的颜色,可以是Red或Black。通过对任何一条从根到叶子简单路径上的颜色来约束,红黑树保证最长路径不超过最短路径的两倍,因而近似于平衡。红黑树是满足下面红黑性质的二叉搜索树 1. 每个节点,不是红色就是黑色的 2....

2017-09-06 17:34:58

阅读数:135

评论数:0

单列模式详讲

一、设计模式简介(1)什么是设计模式: 设计模式是一套被反复使用,多数人知晓的、经过分类编目的、代码设计的总结,使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性。 (2)设计模式的分类: 按照目的可分为三类: 创建型模式,结构型模式,行为型模式; 按照范围,即模式主要处理类...

2017-08-30 21:51:58

阅读数:221

评论数:0

线索二叉树

一、简介二叉树是一种非线性结构,遍历二叉树几乎都是通过递归或者用栈辅助实现非递归的遍历。用二叉树作为存储结构时,取到一个节点,只能获取节点的左孩子和右孩子,不能直接得到节点的任一遍历序列的前驱或者后继。为了保存这种在遍历中需要的信息,我们利用二叉树中指向左右子树的空指针来存放节点的前驱和后继信息。...

2017-08-28 21:35:52

阅读数:227

评论数:0

智能指针详解

一、RALL机制RAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资源(如内存、文件句柄、网络连接、互斥量等等)的简单技术。 他的思想是资源分配即初始化,定义一个类来封装资源的的分配和释放,在构造函数完成资源的分配和初始化,在析...

2017-08-20 05:48:36

阅读数:231

评论数:0

TopK问题--100W个数种找出其中最大的前K个数;

一、100W个数种找出其中最大的前K个数—-建小堆 找最小–建大堆 ; 二、//100W个数种找出其中最大的前K个数; //知识回顾: //bit---比特 //Byte----字节 //*1T...

2017-08-15 02:24:36

阅读数:219

评论数:0

堆得应用【一】--【优先级队列priority_queue】

先看一下STL中优先级队列实现的功能: 一、介绍优先级队列优先级队列就是每次top可以取到队列的最值;每次pop都能删除队列中的最值; 那么我们应该如何实现呢?优先级队列是我们常见的数据结构队列的一种变形,对于队列,大家都很熟悉;就是先进如队列的元素,先出队列,那么一般的队列是可以尾插,可以头...

2017-08-14 05:57:59

阅读数:189

评论数:0

Heap【堆】

1.堆得介绍堆得数据结构是一种数组对象,堆可以被看做一颗完全二叉树(借助二叉树的思想建堆以及插入和删除比较形象直观)2.堆得分类:①最大堆:每个父节点>它的孩子结点 ②最小堆:每个父节点<它的孩子结点3.堆得应用①优先级队列 ①堆排序 4.堆得底层是一个数组,学了STL库之后,可...

2017-08-14 04:06:23

阅读数:214

评论数:0

【哈希表】+【位图】+【布隆过滤器】

总结

2017-08-12 02:44:37

阅读数:104

评论数:0

布隆过滤器【BloomFilter】

布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。布隆过滤器一般是用来判断字符串是否在一个集合中; ...

2017-08-12 01:49:09

阅读数:158

评论数:1

【位图】--利用位图储存大数据,节省空间,快速查找

#include<iostream> using namespace std; #include<vector> class BitMap { public: BitMap(size_t MaxNum)//构造函数 { _arr.resize...

2017-08-11 16:08:00

阅读数:133

评论数:0

HashTable【哈希表/散列表】

前序:一、关于查找,其实说白了,查找的本质就是已知对象查找位置;那么在已知了对象以后都有什么办法去快速查找对象的位置;(1)【无序查找】在前面的学习中,我们看到如果这些对象是无序的装在一个容器中(数组,顺序表,链表,普通二叉树)那么就拿着这个对象去容器中一个一个的找,如果找到了,就查到了该对象的位...

2017-08-08 01:40:06

阅读数:301

评论数:0

vector 中resize和reserve的区别

vector 中resize和reserve的区别#include<iostream> using namespace std; #include<vector> int main() { vector<int> a; a.reserve(1...

2017-08-07 21:09:29

阅读数:107

评论数:0

STL学习&&数据结构

1.STL学习: http://study.163.com/course/courseLearn.htm?courseId=1003205055#/learn/video?lessonId=1003642022&courseId=10032050552.数据结构和算法 数据结构和算法3...

2017-08-07 13:54:14

阅读数:207

评论数:0

已知集合A和B的元素分别用不含头结点的单链表存储, 求解集合A与B的差集,并将结果保存在集合A的单链表中

1.【附加题】–已知集合A和B的元素分别用不含头结点的单链表存储, 函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。 例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},完成计算后A={10,20,30}。 链表结点...

2017-08-06 23:50:46

阅读数:137

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭