
数据结构
chengfeng_blog
满怀对知识的渴求和技术的热诚
展开
-
Java实现单链表
java实现单链表单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。 链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。参数列表及方法: 源代码如下:package linear;class Node{ private Node原创 2017-11-08 17:03:54 · 322 阅读 · 0 评论 -
Java实现二叉排序树
二叉树 是数据结构里比较重要的一部分。有二叉树还引申出各个分支,如:平衡树、排序树、字典树、最优树等。 对于各种树的特点和算法思想,我觉得这一篇博文讲的非常详细,在此附上链接地址:二叉树的应用详解 下面是Java实现的一个简单二叉排序树,代码如下:package tree;public class BinaryTree { class Node { //定义树结点原创 2017-11-09 13:54:48 · 314 阅读 · 0 评论 -
Java实现哈夫曼树(HuffmanTree)
树的带权路径长度规定为所有叶子结点的带权路径长度之和,记为WPL。哈夫曼树又称为最优树,即构造WPL值最小的树。 构造思路: 假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为:将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点);在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权原创 2017-11-14 09:37:30 · 615 阅读 · 0 评论 -
Java实现基于数组的顺序栈
栈是一种特殊的线性表。其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行。后进先出(Last In First Out),简称为LIFO线性表。 栈的基本操作共有六种:构造栈并初始化:Stack();Stack(int initalSize); 判断空栈:isEmpty(); 判断满栈:isFull(); 入栈操作:push(E e); 出栈操作:pop();取栈顶元素原创 2017-11-06 11:16:50 · 490 阅读 · 0 评论 -
Java实现基于LinkedList的栈
利用LinkedList实现栈:package linear;import java.util.LinkedList;/** * 基于LinkedList实现栈结构 */public class ListStack<E>{ private LinkedList<E> list; public ListStack() { list = new LinkedList<原创 2017-11-06 13:40:25 · 940 阅读 · 0 评论 -
Java实现红黑树
红黑树(Red Black Tree) 是一种自平衡二叉查找树,红黑树和AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。 它虽然是复杂的,但它的最坏情况运行时间也是非常良好的,并且在实践中是高效的: 它可以在O(log n)时间内做查找,插入和删除。红黑树的性质: 性质1. 节点是红色或黑色。 性质2. 根节点是黑色。 性质3 每个叶原创 2017-11-22 16:07:45 · 296 阅读 · 0 评论