数据结构与算法分析java——树

1. 基本术语

度(degree):一个节点的子树个数称为该节点的度; 树中结点度的最大值称为该树的度。

层数(level):从根结点开始算,根节点为1

高度(height)/深度(depth):节点的最大层数

2. 二叉树性质

满二叉树:

完全二叉树:

3. 二叉树的存储结构

1)顺序存储结构

2)链式存储

4. 二叉树的遍历

1)前序遍历: 根  左子树 右子树

2)中序遍历

3)后序遍历

4)层次遍历:从上往下,从左到右

5. 数和二叉树的转换及树的存储结构

1)树转化为二叉树

2)二叉树还原为树

3)树的遍历

1)先根遍历:与其转换的二叉树的前序遍历结果相同

2)后根遍历:与其转换的二叉树的中序遍历结果相同

后根遍历: EFBCGDA        F LMG H B NIC D JKE A

6. 树的存储结构

1)双亲链表示法

2)孩子链表示法

3)双亲孩子链表

4)孩子兄弟链

时间: 2024-12-14 06:27:11

数据结构与算法分析java——树的相关文章

数据结构与算法分析java——树2(二叉树类型)

1. 二叉查找树 二叉查找树(Binary Search Tree)/  有序二叉树(ordered binary tree)/ 排序二叉树(sorted binary tree) 1). 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值: 2). 若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值: 3). 任意节点的左.右子树也分别为二叉查找树. 4). 没有键值相等的节点(no duplicate nodes). public class BinarySe

数据结构与算法分析-AVL树深入探讨

.title { text-align: center; margin-bottom: .2em } .subtitle { text-align: center; font-size: medium; font-weight: bold; margin-top: 0 } .todo { font-family: monospace; color: red } .done { font-family: monospace; color: green } .priority { font-fami

数据结构与算法分析Java版pdf

下载地址:网盘下载 本书是国外数据结构与算法分析方面的经典教材,使用卓越的Java编程语言作为实现工具讨论了数据结构(组织大量数据的方法)和算法分析(对算法运行时间的估计).本书把算法分析与最有效率的Java程序的开发有机地结合起来,深入分析每种算法,内容全面.缜密严格,并细致讲解精心构造程序的方法. 原文地址:https://www.cnblogs.com/longgg/p/8419233.html

《数据结构与算法分析Java语言描述》PDF文件免费下载

图书简介: 本书是国外数据结构与算法分析方面的经典教材,使用卓越的Java编程语言作为实现工具讨论了数据结构(组织大量数据的方法)和算法分析(对算法运行时间的估计). 随着计算机速度的不断增加和功能的日益强大,人们对有效编程和算法分析的要求也不断增长.本书把算法分析与最有效率的Java程序的开发有机地结合起来,深入分析每种算法,内容全面.缜密严格,并细致讲解精心构造程序的方法. 图书目录部分截图: 结语:总结 数据结构与算法分析需要这份PDF文档的朋友,欢迎加Q群:219571750,免费领取,

数据结构与算法分析java——栈和队列1

1. 栈 1.1 分类 顺序栈:顺序线性表实现 链式栈:单向链表存储堆栈 1.2栈的应用 1)数制转换 import java.util.Scanner; import java.util.Stack; public class Tran{ public static void main(String arg[]){ Scanner y=new Scanner(System.in); System.out.println("请输入十进制数"); int b=y.nextInt(); T

数据结构与算法分析java——线性表3 (LinkedList)

1. LinkedList简介 LinkedList 是一个继承于AbstractSequentialList的双向链表.它也可以被当作堆栈.队列或双端队列进行操作.LinkedList 实现 List 接口,能对它进行队列操作.LinkedList 实现 Deque 接口,即能将LinkedList当作双端队列使用.LinkedList 实现了Cloneable接口,即覆盖了函数clone(),能克隆.LinkedList 实现java.io.Serializable接口,这意味着Linked

数据结构与算法分析java——散列

1. 散列的概念 散列方法的主要思想是根据结点的关键码值来确定其存储地址:以关键码值K为自变量,通过一定的函数关系h(K)(称为散列函数),计算出对应的函数值来,把这个值解释为结点的存储地址,将结点存入到此存储单元中.检索时,用同样的方法计算地址,然后到相应的单元里去取要找的结点.通过散列方法可以对结点进行快速检索.散列(hash,也称“哈希”)是一种重要的存储方式,也是一种常见的检索方法. 按散列存储方式构造的存储结构称为散列表(hash table).散列表中的一个位置称为槽(slot).散

数据结构与算法分析java——线性表

说到线性结构的话,我们可以根据其实现方式分为三类: 1)顺序结构的线性表 2)链式结构的线性表 3)栈和队列的线性表 1.顺序结构的线性表     所谓顺序存储,指的是两个元素在物理上的存储地址和逻辑上的存储地址是一致的,逻辑上相邻的两个元素,它们在物理中存储的地址 也是相邻的.对于jdk中典型的应用就是List接口的实现类ArrayList和Vector(它们两个的区别在于是否是线程同步的).

数据结构与算法分析 java语音描述(引论)

1.1本书讨论的问题 public class Test { // 输出字谜中的单词 public static void outPutlogoGriph(String temp, String[] logogriph) { for (int k = 0; k < logogriph.length; k++) { // 返回指定字符在temp字符串中第一次出现的索引 if (temp.indexOf(logogriph[k]) >= 0) { System.out.println(logogr