
数据结构
文章平均质量分 61
w7486
这个作者很懒,什么都没留下…
展开
-
哈夫曼树(Huffman Tree),与哈夫曼编码
目录一.哈夫曼树1.什么是哈夫曼树?2.哈夫曼树关键字说明3.用代码实现哈夫曼树思路分析4.代码实现二.哈夫曼编码1.哈夫曼编码基本介绍2.原理剖析3.代码实现一.哈夫曼树1.什么是哈夫曼树?哈夫曼树:给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。2.哈夫曼树关键字说明路径和路径长度:在一.原创 2021-08-16 21:58:01 · 1697 阅读 · 0 评论 -
树(二叉树)
目录一.为什么需要树这种数据结构二.二叉树1.二叉树的概念2.二叉树的遍历3.代码实现三.顺序存储二叉树1.什么是顺序存储二叉树一.为什么需要树这种数据结构1) 数组存储方式的分析优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低。2) 链式存储方式的分析优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插入节点,链接到链表中即可原创 2021-08-06 13:41:58 · 101 阅读 · 0 评论 -
稀疏数组sparsearray
1.1先看一个实际的需求编写的五子棋程序中,有存盘退出和续上盘的功能。分析问题:因为该二维数组的很多值是默认值 0, 因此记录了很多没有意义的数据.->稀疏数组。1.2基本介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:1) 记录数组一共有几行几列,有多少个不同的值2) 把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模稀疏数组举例说明1.3应用实例1) 使用稀原创 2021-07-10 18:14:34 · 134 阅读 · 1 评论 -
队列(数组实现)
什么是队列?1) 队列是一个有序列表,可以用数组或是链表来实现。 2) 遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出1.数组模拟队列 (一次性队列)1.1示意图:maxSize 是该队 列的最大容量。front初始值-1.front指向第一个元素前一位。rear初始值-1.rear指向最后一个元素.队列满的条件是 rear =maxSize-1.1.2代码实现:package com.ws;public class A..原创 2021-07-13 21:59:20 · 219 阅读 · 0 评论 -
链表(单向链表)
1.链表介绍1.1链表是有序的列表,但是它在内存中是存储如下:1) 链表是以节点的方式来存储,是链式存储 2) 每个节点包含 data 域, next 域:指向下一个节点. 3) 如图:发现链表的各个节点不一定是连续存储. 4) 链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定1.2单链表(带头结点) 逻辑结构示意图如下:1.3代码实现package com.ws;public class SingleLinkedList { //..原创 2021-07-18 18:40:06 · 95 阅读 · 0 评论 -
栈(数组实现)
数组代码实现:package com.ws;public class ArrayStack { //栈的最大空间 private int maxTop; private int stack[]; private int top; private int bottom; //构造器 public ArrayStack(int maxTop) { this.maxTop = maxTop; stack = new原创 2021-07-19 23:16:20 · 65 阅读 · 0 评论 -
哈希表代码实现
1.简介哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数存放记录的数组叫做哈希表。可以当作缓存层存放数据。2.2.链表代码:package com.ws;public class StudentLinkList { //链表的头 默认为null private Student head; /** .原创 2021-08-02 22:45:31 · 480 阅读 · 0 评论