数据结构与算法
文章平均质量分 67
二叉树
Stars-Nine
这个作者很懒,什么都没留下…
展开
-
图的存储及遍历
文章目录一、图的定义及分类1.1 图的分类二、 无向图2.1 图的相关术语2.2 图的存储结构2.2.1 邻接矩阵2.2.2 邻接表三、无向图的代码实现3.1 图的创建四、图的遍历4.1 深度优先遍历4.2 广度优先遍历一、图的定义及分类定义∶图是由一组顶点和一组能够将两个顶点相连的边组成的特殊的图︰1.自环:即一条连接一个顶点和其自身的边;2.平行边:连接同一对顶点的两条边;1.1 图的分类按照连接两个顶点的边的不同,可以把图分为以下两种:无向图:边仅仅连接两个顶点,没有其他含义;原创 2021-07-17 10:42:46 · 1793 阅读 · 1 评论 -
树的性质及其遍历实现
一、树的简介树( tree )是n (n≥0)个结点的有限集。1)或者是一棵空树( n = 0 ),空树中不包含任何结点。2) 或者是一棵非空树(n >0 ),此时有且仅有一个特定的称为根( root )的结点;当n > 1时,其余结点可分为m ( m > 0 )个互不相交的有限集T1,T 2 , … ,T m ,其中每一个本身又是一棵树,并且称为根的子树( sub tree ) ).例如图( a )是一棵空树、( b )是只有一个根节点的树、©是一棵有10个结点的树,其中A是根原创 2021-06-23 16:26:51 · 168 阅读 · 0 评论 -
线性表(顺序表、链表)
一、线性表线性表是最基本、最简单、也是最常用的一种数据结构。一个线性表是n个具有相同特性的数据元素的有限序列。1.1 前驱元素若A元素在B元素的前面,则称A为B的前驱元素1.2 后继元素若B元素在A元素的后面,则称B为A的后继元素1.3线性表的特征数据元素之间具有—种“—对一”的逻辑关系。.1.第一个数据元素没有前驱,这个数据元素被称为头结点;2.最后一个数据元素没有后继,这个数据元素被称为尾结点;3.除了第一个和最后一个数据元素外,其他数据元素有且仅有一个前驱和一个后继。如果把线性表原创 2021-06-22 10:28:30 · 1772 阅读 · 0 评论 -
java排序算法
一、直接插入排序基本思想:将一个记录插入到已排序的有序表中,使插入后的表仍然有序对初始关键字{49 38 65 97 76 13 27 49}进行直接插入排序package Sort;//插入排序public class InsertSort { public static void main(String[] args) { int [] arr={49,38,65,97,76,13,27,49}; sort(arr);原创 2021-06-14 23:04:56 · 3121 阅读 · 6 评论 -
哈夫曼树(HuffmanTree)及Java代码实现
哈夫曼树(HuffmanTree)1. 基本介绍:(1)给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度(wpl)达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree), 还有的书翻译为霍夫曼树。(2)赫夫曼树是带权路径长度最短的树,权值较大的结点离根较近。2、赫夫曼树几个重要概念和举例说明(1)路径和路径长度:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层原创 2021-04-26 22:08:57 · 382 阅读 · 0 评论 -
Leecode递归乘法
递归乘法: 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。示例1:输入:A = 1, B = 10输出:10示例2:输入:A = 3, B = 4输出:12提示:保证乘法范围不会溢出分析:A*B=A+A+A+…A(B个A相加)public class diguitest { public static void main(String[] args) { //接受计算结果 int s= ji(3,4);原创 2021-05-27 16:20:52 · 78 阅读 · 0 评论 -
查找算法(二分查找、线性查找)
二分查找二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素有序排列。查找过程此实现过程的实施是通过变量left和right控制一个循环来查找元素(其中left和right是正在查找的数据集的两个边界值)。首先,将left和right分别设置为0和arr.length-1。在循环的每次迭代过程中,将mid设置为left和right之间区域的中间值,即 mid=(left+right)/2。如果处于arr[mid原创 2021-05-29 17:30:05 · 285 阅读 · 0 评论 -
顺序存储二叉树的前序、中序、后序遍历
顺序存储二叉树基本说明: 从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换成数组,看示意图。要求:如图的二叉树的结点,要求以数组的方式来存放 arr : [1, 2, 3, 4, 5, 6, 6],要求在遍历数组arr时,仍然可以以前序遍历,中序遍历和后序遍历的方式完成结点的遍历顺序存储二叉树的特点:顺序二叉树通常只考虑完全二叉树 第n个元素的左子节点为 2 * n + 1第n个元素的右子节点为 2 * n + 2第n个元素的父节原创 2021-05-24 08:53:15 · 655 阅读 · 0 评论