
数据结构与算法
文章平均质量分 55
~
ReL1FE.
倒了
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
图
图 图的一些基本知识点这里就不重复了,离散数学中都讲的很清楚。 与树结构不同的是,虽然图在逻辑结构上看上去像是链表连接而成,但是常用的储存结构有三种,分别为邻接矩阵,领接表和十字链表。 深度优先和广度优先搜索 图的遍历是指从图的某个顶点出发,按照某种方式访问图中所有的顶点且仅访问一次。为了节省时间,需要为每个顶点设置一个访问标志(visited) 深度优先搜索(DFS) 深度优先搜索(depth-...原创 2020-01-29 15:24:33 · 131 阅读 · 0 评论 -
哈希法
一.什么是散列 散列使用一个散列函数,将一个键映射到一个索引上。 散列非常高效。使用散列将耗费O(1)时间来查找、插入、及删除一个元素。 映射表是一种用散列实现的数据结构,映射表是一种存储条目的容器,每个条目包含两个部分:一个键(key)和一个值(value)。键又称为搜索键用于查找对应的值。 映射表(map)又称为字典(dictionary)、散列表(hash table)或者关联数组(asso...转载 2020-01-28 22:26:44 · 433 阅读 · 0 评论 -
二叉排序树
定义 二叉排序树(Binary Sort Tree)又称二叉查找树、二叉搜索树。 它或者是一棵空树;或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树; 对于线性结构: 1.若采用顺序存储,当数据是排好序的时候则删除和插入困难,当数据不是排好序的时候,...原创 2020-01-27 21:33:55 · 274 阅读 · 0 评论 -
霍夫曼树
定义 霍夫曼树:假设有n个权值,可以构造一颗具有n个叶子节点的二叉树,其中带权路径长度WPL最小的二叉树称作最优二叉树,也叫霍夫曼树。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 构造过程 假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为: (1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点); (...原创 2020-01-26 15:33:48 · 223 阅读 · 0 评论 -
线索二叉数
线索二叉树 具有n个节点的二叉链表中含有n+1个空指针。利用这些空指针域可以存放指向节点在某种遍历次序下的前驱节点和后继节点的指针(这种附加指针称为“线索”)。 根据线索性质的不同可分为前序线索二叉树、中序线索二叉树、后序线索二叉树。 线索二叉树在遍历二叉树时不需要设栈,无需由叶子向树根溯源,故遍历线索二叉树的效率比普通二叉树更高。所以如果在程序中使用的二叉树经常需要遍历,该程序的存储结构就应该使...原创 2020-01-24 00:14:01 · 395 阅读 · 0 评论 -
二叉树
二叉树 满二叉树:所有叶子节点都在最后一层,并且节点总数为2^n-1,其中n为层数 完全二叉树:所有叶子节点都在最后一层或者倒数第二层,且最后一层的叶子节点在左边连续,倒数第二层的叶子节点在右边连续。 ...原创 2020-01-22 17:58:08 · 174 阅读 · 0 评论 -
几种常见的排序算法
冒泡排序 package Sort; import java.util.Arrays; /** * * @author y * 冒泡排序 */ public class BubbleSort { public static void main(String[] args){ int[] arr = new int[]{3,21,5,6,3,6,8,4,7}; System....原创 2020-01-22 18:18:03 · 157 阅读 · 0 评论 -
数据结构:线性结构
线性结构 线性结构常见的有数组、栈、队列、链表等。 栈 栈就好比一个子弹弹夹,最先压进弹夹的子弹最后被射出,而最后被压进弹夹的子弹最先被射出。它允许在同一端进行插入和删除操作,这一端称为栈顶(top)。另一端称为栈底(botton)。栈底固定而栈顶浮动。 栈的基本操作 入栈(push)、 出栈(pop)。 package linear; public class MyStack { //运用...原创 2020-01-22 18:19:26 · 197 阅读 · 0 评论