数据结构
javagaorui5944
爱生活,爱编程的小伙子!
展开
-
java实现简单的单链表结构
链表(Chain本文所说链表均为单向链表,以下均简称单向链表)实际上是由节点(Node)组成的,一个链表拥有不定数量的节点。而向外暴露的只有一个头节(Head),我们对链表的所有操作,都是直接或者间接地通过其头节点来进行的。节点(Node)是由一个需要储存的对象及对下一个节点的引用组成的。也就是说,节点拥有两个成员:储存的对象、对下一个节点的引用。下面给大家放一张网上的图,这样更清晰,下面原创 2015-12-21 20:36:11 · 3445 阅读 · 0 评论 -
Java实现简单的栈
栈的定义 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。 (1)通常称插入、删除的这一端为栈顶 (Top),另一端称为栈底 (Bottom)。 (2)当表中没有元素时称为空栈。 (3)栈为后进先出(Last In First Out)的线性表,简称为 LIFO 表。 栈的修改是按后进先出的原则进行。每次删除(原创 2015-12-21 20:46:26 · 575 阅读 · 0 评论 -
Java实现简单的顺序队列
队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。队列的存储结构及实现队列的顺序存储结构(1) 顺序队列的定义: 队列的顺序存储结构称为顺序队列,顺序队列实际上是运算受限的顺序表。(2)顺序队列的表示:和顺序表一样,顺序队列利用内存中一段连续的存储空间来存放当前队列中的元素。由于队列的队头和队尾的位置是变化的,设置两个指针front和rea原创 2015-12-22 20:03:56 · 1861 阅读 · 0 评论 -
Hashmap 源码分析
Hashmap 源码分析put()null的处理,重复key的处理,hash冲突的链表处理indexfor() hash算法从而获得槽点的巧妙用处 public V put(K key, V value) { //空表处理 if (table == EMPTY_TABLE) { inflateTable(threshold); }原创 2016-07-03 22:37:56 · 421 阅读 · 0 评论 -
跳表SkipList的原理和实现
原文地址:http://kenby.iteye.com/blog/1187303 ,http://imtinx.iteye.com/blog/1291165为什么选择跳表目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。 想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗? 很难吧,这需要时间,要考转载 2017-12-27 22:28:26 · 724 阅读 · 0 评论