数据结构
littleflypig
这个作者很懒,什么都没留下…
展开
-
数据结构与算法-vector实现
本篇文章实现C++中的vector模板类#include <algorithm>template <typename object>class myvector{static const int SPARE_CAPACITY = 16;private: int size; int cap原创 2018-11-13 15:13:06 · 710 阅读 · 0 评论 -
数据结构与算法-二叉查找树
二叉树基本概念二叉查找树的实现,包括查找元素、查找最大最小值、插入元素、删除元素、清空二叉树等操作。二叉查找树的平均深度是O(log N),因此查找的平均时间复杂度也是O(log N),但是当二叉查找树不平衡时比如退化成单链表时,查找元素所需的平均时间复杂度为O(N),二叉平衡树可以解决不平衡的问题。部分代码实现template <typename Comparable>cl...原创 2018-11-15 18:06:52 · 166 阅读 · 0 评论 -
数据结构与算法--链表相关题目
1.链表交点https://leetcode.com/problems/intersection-of-two-linked-lists/description/ ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { ListNode* p1 = headA; ListNode*...原创 2019-04-20 16:20:42 · 204 阅读 · 0 评论 -
数据结构与算法---树相关题目
1.二叉搜索树与双向链表输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 TreeNode* Convert(TreeNode* pRootOfTree) { //空节点直接返回null if(pRootOfTree==nullptr) return null...原创 2019-05-09 21:19:41 · 633 阅读 · 0 评论 -
海量数据处理
有20亿个数,给定内存大小为1G,求中位数首先求中位数,其实就是求topK,比如此题就是求top 20G/2(1亿个int占用512M内存,要记住)。如果内存能存下这么多数,直接用一个大小为20G/2的堆就可以。另外求topK时,有个窍门:求最大topK,先建一个最小堆,然后所有大于根节点的值,替换根节点并调平衡;求最小topK,先建一个最大堆,然后将比根节点小的值插入堆。此题内存存不下这么...原创 2019-08-07 10:49:36 · 266 阅读 · 0 评论