
数据结构
cute_shuai
这个作者很懒,什么都没留下…
展开
-
数据结构_单链表
单链表定义:typedef int DataType;typedef struct SListNode{ struct SListNode* _next; DataType _data;}SListNode;原创 2017-12-15 23:51:31 · 217 阅读 · 0 评论 -
数据结构_排序
常见排序 1.插入排序:直接插入排序,希尔排序 2.选择排序:选择排序,堆排序 3.交换排序:冒泡排序,快速排序 4.归并排序:归并排序插入排序 直接插入排序:元素越接近有序,时间效率越高 最优情况:O(N) 最差情况:O(N^2) 空间复杂度:O(1) 是一种稳定的排序算法static void swap(int* a, int* b){ int c = *a...原创 2018-05-23 10:50:55 · 950 阅读 · 1 评论 -
数据结构_二叉树线索化
二叉树结构typedef int DataType;typedef enum PtrTag{ THEARD, // 线索化 LINK, // 链接左右孩纸 }PtrTag;typedef struct BinaryTreeNodeThd{ DataType _data; struct BinaryTreeNodeThd* _left; ...原创 2018-05-27 12:43:02 · 163 阅读 · 0 评论 -
数据结构_堆
TopK & prioriQueue原创 2018-02-25 17:41:55 · 146 阅读 · 0 评论 -
数据结构_用栈编写一个简单计算器
利用栈的特性,可以把一些即用即销的数据保存在栈中 定义一个结构体,包含两个部分,一个部分表示是数据还是符号。另一个部分保存内容。typedef enum RPN_TYPE{ OP_NUM, OP_SYMBOL, OP_ADD, // + OP_SUB, // - OP_MUL, // * OP_DIV, // /}RPN_TYPE原创 2018-02-24 23:29:04 · 3382 阅读 · 0 评论 -
数据结构_栈和队列
栈栈的特点:遵循“先进后出,后进先出”原则;队列的特点:遵循“先进先出,后进后出”原则原创 2018-02-24 22:39:33 · 201 阅读 · 0 评论 -
数据结构_海量数据面试题
面试题 1.哈希切割top K问题 给一个超过100G大小的log file, log中存着IP地址, 设计算法找到出现次数最多的IP地址? 2.位图应用 给定100亿个整数,设计算法找到只出现一次的整数 给两个文件,分别有100亿个整数,我们只有1G内存,如何找到两个文件交集 1个文件有100亿个int,1G内存,设计算法找到出现次数不超过2次的所...原创 2018-03-02 22:49:19 · 375 阅读 · 0 评论 -
数据结构_布隆过滤器
基于位图的缺点——只能保存整型,在现实中的应用有了很大的局限性,所以又引出了一种新的哈希变形,其实也算是位图的变形——布隆过滤器。原创 2018-03-02 20:28:48 · 206 阅读 · 0 评论 -
数据结构_位图
位图概念基于哈希结构,在海量整型数据处理时,内存往往不够用,所以当只需要判断是否存在时,可以使用比特位来标记,一个整型数32个比特位,就可以标记32个数,如果有100亿个整数,就只需大约半个G的空间就可以处理,需要的空间大小和数据数量无关,和范围有关。原创 2018-03-02 17:22:52 · 242 阅读 · 0 评论 -
数据结构_哈希
哈希关键:不比较关键码,直接搜索得到需要的数。 特点:与搜索树不一样,哈希结构元素的储存位置与关键码直接对应,可以不用进行比较遍历。原创 2018-03-02 17:03:13 · 205 阅读 · 0 评论 -
数据结构_链表问题(倒序打印、相交、带环)
问题集锦 从尾到头打印单链表 删除一个无头单链表的非尾节点(不能遍历链表) 在无头单链表的一个节点前插入一个节点(不能遍历链表) 单链表实现约瑟夫环(JosephCircle) 逆置/反转单链表 单链表排序(冒泡排序&快速排序) 合并两个有序链表,合并后依然有序 查找单链表的中间节点,要求只能遍历一次链表 查找单链表的倒数第k个节点原创 2018-02-18 14:35:59 · 306 阅读 · 0 评论 -
数据结构_二叉树的基本操作
二叉树的定义typedef int BTDataType;typedef struct BTNode{ struct BTNode* _left; struct BTNode* _right; BTDataType _data;}BTNode;二叉树的接口实现BTNode* BuyBTNode(BTDataType x) //树的节点{ ...原创 2018-02-27 20:06:19 · 447 阅读 · 3 评论 -
CPP_STL——内存池(附源代码)
内存碎片 讲述内存池之前,先来说一下内存碎片的概念。物理内存实际的存储空间是连续的,内存没有被使用之前,进程刚跑起来的时候确实是顺序使用的,但是在系统中不断有进程提起,退出。这样内存在不停的被申请和释放,可用的物理内存空间不再连续,会产生很多的碎片,这就是内存碎片。 内存碎片过多,将造成内存的可用性降低,实际能用的内存没有剩余那么多,好比把一个亿分别存到一亿张银行卡一样,刷卡的时候每次只能刷一...原创 2018-07-27 20:33:13 · 877 阅读 · 0 评论