`
ostrichmyself
  • 浏览: 38790 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

树概览1

阅读更多
树概览:

全局来看:

组成: 根节点 + 方法

即:知道根节点,然后提供方法, 就能将这棵树的信息全部搞定, 从根节点开始,
攀爬到你需要的任何叶子或者枝干上去。

所以,如果你想写一颗树, 则应该这样:

Tree的类,

1. 这个类有一个Field,叫root, 类型为Node类型; 根节点下面会延伸出其他节点,也为Node
2. 这个类有无数的访问方法,大体是顺着节点去摸索其他的节点,让你方便的找到树中,你需要的任意信息

.

OK, 就这些!够简单!

然后再深入一点点:提到的类型Node,还没有定义,怎样定义一个节点?

定义一个Node主要有以下:

1. 她自己所描述的数据.
2. 她的子孙Node.
3. 它的方法,得到子孙Node,得到数据.

Over!

整个树从用途到实现,也就讲完了, 此时,我们遗留了问题,怎么去查找树中的信息? 上面提到
查找信息的方法,是通过树的方法来实现,但这里并没有说到具体的方法?

这里务必明白,tree是一个数据结构,数据结构和数据的关系,就如同水和盛水的器皿一样, 比如:
消防员会选择用消防水栓装水,原因是他需要处理高压大量的水,解救火灾;茶馆的伙计会用茶壶,
茶壶受热均匀,煮出的茶才韵味无穷,家庭用的话,就用饮水机或者开水壶。 这些器皿,就是我们
放置数据的方法。目的:在我们用到的时候,尽快的适应应用,最有效的解决问题。
分享到:
评论

相关推荐

    2021年中国少儿英语线下培训行业概览.pdf

    在这种趋势下,线下培训机构也需要适应市场变化,例如新东方、树童英语、瑞思英语等行业知名品牌开始推出在线APP,与传统线下教学相结合,形成线上线下教学闭环,利用互联网技术的优势,提供更加灵活多样的学习方式...

    B树基础知识介绍

    #### B树概览 B树是一种多路搜索树,不同于传统的二叉树,它允许多个子节点,这使得B树能够有效地管理大规模数据集,尤其是在磁盘存储环境中。B树的基本特性包括: 1. **多路性**:任意非叶子节点最多有M个子节点...

    数据结构7.3树表查找

    1. **如果一棵二叉树为空**,则它就是一棵二叉排序树。 2. **若左子树不为空**,则左子树上所有结点的值均小于根结点的值。 3. **若右子树不为空**,则右子树上所有结点的值均大于根结点的值。 4. **左右子树也都是...

    c++编程哈夫曼树

    1. **递归遍历哈夫曼树**:从根节点开始,向左子树移动时记录“0”,向右子树移动时记录“1”。 2. **生成编码表**:当遍历到叶子节点时,就得到了对应字符的哈夫曼编码。 #### 文件压缩与解压缩 - **压缩过程**:...

    生成树协议原理与配置

    - **STP历史**:由DEC公司起源,后由IEEE 802.1d标准规范化,目的是为了在保持网络冗余的同时消除环路。 - **STP操作**:STP通过选举根网桥、指定网桥、根端口和指定端口来确定每个网段的最佳路径,并将其他可能形成...

    ZYNQ开发全过程概览

    ### ZYNQ开发全过程概览 #### ZYNQ概述与技术背景 ZYNQ-7000系列是由Xilinx公司推出的一种高度集成的SoC(System on Chip)芯片,它将ARM Cortex-A9 MPCore处理器与可编程逻辑(PL)部分结合在一起,实现了软硬件...

    XGBoost算法概览

    XGBoost算法全称为“极端梯度提升算法”(Extreme Gradient Boosting),是一种基于决策树的集成机器学习算法。该算法采用梯度提升框架,适用于多种预测问题,尤其在处理小至中等规模的结构化或表格数据时,被认为是...

    @Zynq开发全过程概览.pdf

    Zynq开发全过程概览 本资源为Zynq开发全过程概览,涵盖了Zynq开发的整个流程,包括Vivado Block设计、SDK设计、Linux内核裁剪等。 Zynq介绍 Zynq是一种基于ARM Cortex-A9处理器的系统级芯片(SoC),具有高性能、...

    802协议族概览文档

    5. **802.1D - 生成树协议(STP)**: STP用于防止网络中的循环路径,确保数据包只沿着一个路径传输,避免形成环路导致的数据包丢失。 6. **802.11n - 高速无线**: 引入MIMO(多输入多输出)技术,显著提高了无线...

    集成学习概览_Bagging与Boosting1

    集成学习概览_Bagging与Boosting 集成学习是一种机器学习思想,其核心是将多个简单的机器学习模型组合起来,形成一个强大的模型。集成学习主要分为两种方式:Bagging 和 Boosting。 一、 Bagging Bagging...

    stm32时钟树

    #### 时钟树结构概览 STM32的时钟树由多个关键部分组成: 1. **时钟源**:包括内部低速振荡器(LSI)、外部低速振荡器(LSE)、外部高速振荡器(HSE)和内部高速振荡器(HSI),分别用于提供不同频率的时钟信号。 2. **...

    字典树实例--java实现

    以下是一个简单的`TrieNode`类的概览: ```java public class TrieNode { private char value; private Map, TrieNode> children; public TrieNode(char value) { this.value = value; this.children = new ...

    GDAL影像读取、四叉树存储

    4. **多级缩略图**:利用四叉树生成不同级别的影像概览。 总的来说,GDAL的影像读取能力和四叉树的空间数据结构相结合,为GIS开发提供了一种强大而灵活的工具,能够处理大规模的遥感影像数据,提高数据处理速度,...

    C#递归创建树

    #### 一、知识点概览 在软件开发中,树形结构是一种常见的数据组织形式,广泛应用于文件系统、菜单系统等场景中。本篇文章将详细探讨如何利用C#语言中的递归技术来构建一个树形结构。递归创建树不仅能够帮助开发者...

    atmel原厂 设备树资料

    文档中嵌入式Linux®简介部分可能包含了实验手册的结构和内容概览,为读者指引如何利用手册中的各种实验来获取实践经验。例如,实验1可能指导如何使用Linux命令和工具来探究AT91SAMA5D27 Xplained目标板。 #### 8. ...

    基于四叉树的图像分割技术

    例如,通过对图像进行粗略分割可以获得图像的概览,而通过更细粒度的分割可以获得更多的细节信息。这种方法对于处理不同分辨率的设备输出非常有用。 ##### 3.2 平移、旋转等变换 除了多分辨率变换外,基于四叉树的...

    Ajax实现无刷新树

    #### 一、Ajax技术概览 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页可以实现动态更新。这种交互方式...

Global site tag (gtag.js) - Google Analytics