
数据结构
飞奔的六六
这个作者很懒,什么都没留下…
展开
-
HashMap和ConcurrentHashMap比较
HashMap的数据结构是一个数组加链表的形式,即数组中的每个元素都是链表。链表的每个节点都是一个键值对Entry(key,value)。 1. HashMap的数据结构 数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组 数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困转载 2017-10-23 21:05:05 · 1314 阅读 · 0 评论 -
数据结构—B树、B+树
B树、B+树一般用于数据库索引以及用于MongoDB。在大型系统中数据库中的索引量通常都有好几G,如果使用二叉查找树太过于吃内存。 从算法的角度来讲,二叉查找树的算法复杂度可能会更低,但由于需要将索引加载到内存上进行操作,如果是普通的BST则会因为频繁的IO操作而损耗大量的性能。 相比于BST的“瘦高”结构,B、B+树更像是一个矮胖子。它们允许一个根节点下有多个子节点,而且每个子节点中可以包含多原创 2017-10-23 21:16:28 · 1339 阅读 · 0 评论 -
线性表--顺序表
顺序表的基本操作和常见算法(Definition Only) #include <stdio.h> #define MAXSIZE 50 #define INIT_SIZE 10 /** * Author: art1st-d * Date: 2018/08/09 */ typedef int ElemType; // 静态分配 // typedef struct {...原创 2018-08-09 07:03:17 · 296 阅读 · 0 评论 -
线性表--链表
链表的基本操作和常见算法(Definition Only) #include <stdio.h> /** * Author: art1st-d * Date: 2018/08/09 */ typedef int ElemType; //单链表 typedef struct LNode { ElemType data; struct LNode *next; }L...原创 2018-08-09 08:09:19 · 297 阅读 · 0 评论 -
数据结构——树、树的遍历
二叉树、二叉排序树、线索树、树的遍历实现 /* * 二叉树 */ typedef struct BiTNode{ ElemType data; struct BiTNode *lchild, *rchild; }BiTNode, *BiTree; // 递归先序遍历 void PreOrder(BiTree T) { if(T!=NULL) { visit(T); PreO...原创 2018-10-18 08:28:50 · 527 阅读 · 0 评论 -
如何使用双栈找出最小值?
思路:一个栈为数据栈dataStack,另一个栈为最小值栈minStack。 dataStack入栈时,若为空,则同时入栈minStack; 若不为空,则与minStack栈顶元素比较,若比栈顶元素小则同时如minStack; dataStack出栈时,若元素与minStack栈顶元素相同时minStack出栈,否则不处理。 ...原创 2019-03-17 11:41:18 · 326 阅读 · 0 评论