文档章节

【数据结构】务实篇

吴伟祥
 吴伟祥
发布于 2017/08/18 15:41
字数 753
阅读 13
收藏 0

数据结构

               

名词定义

  • 相互之间存在着一种或多种关系的数据元素的集合+该集合中数据元素之间的关系组成。记为:

                                           Data_Structure=(D,R)

 

其中D是数据元素的集合R是该集合中所有元素之间的关系的有限集合

 

 

 

 

 指的是数据的存储形式,常见的有线性结构(数组、链表,队列、栈)【一对一

                                                             还有非线性结构(树、图等)

1> 线性结构

                        一个节点至多只有一个节点,至多只有一个尾节点,彼此连接起来是一条完整的线

比如:【链表数组

                       shixin tai shuai le

2> 非线性结构

                      不再是一对一,而变成了一对多(而以是 多对多

如下图所示:

                       shixin tai shuai le

可以看到:

  • 图中的结构就像一棵倒过来的树最顶部的节点就是“根节点 (root 节点)
  • 每棵树至多只有一个根节点
  • 根节点生出多个孩子节点,每个孩子节点只有一个父节点,每个孩子节点又生出多个孩子
  • 父亲节点 (parent) 和孩子节点 (child) 是相对的
  • 没有孩子节点的节点叶子节点 (leaf)

 

 

2.0>  的相关术语 

        如 ↑ :   根节点、父亲节点、孩子节点、叶子节点   

                                        shixinzhang

节点的度(度可以理解为关联度,指和该节点相关联的个数)

一个节点直接的子树个数,叫做节点的度。比如上图中的 3 的度是 2,10 的度是 1。

树的度

度就是分支的数目。没有分叉的二叉树节点的度就是0度。如果一个节点只有一个分叉就是1度。两个分叉就是2度的子树.

一棵树中 最大节点的度,即哪个节点的子节点最多,它的度就是 树的度。上图中树的度为 2 .

 

节点的层次

结点的层次从开始定义起,根为第一层,根的孩子第二层,依次累计.

 

树的高度(叶 →根)

树的高度是从叶子节点开始,自底向上增加

树的深度(根→叶)

与高度相反,树的深度从根节点开始,自顶向下增加

整个树的高度、深度是一样的,但是中间节点的高度 和 深度是不同的,比如上图中的 6 ,高度是 2 ,深度是 3。

 

 

2.1>   的两种实现

由 2> 得知,树是一个递归的概念,从根节点开始,每个节点至多只有一个父节点,有多个子节点,每个子节点又是一棵树,以此递归。

树有两种实现方式:

  • 数组
  • 链表

树的几种常见分类及使用场景

树,为了更好的查找性能而生。

常见的树有以下几种分类:

  • 二叉树
  • 平衡二叉树
  • B 树
  • B+ 树
  • 哈夫曼树
  • 红黑树

百度百科  树

© 著作权归作者所有

上一篇: javadoc
下一篇: 测试文章收藏
吴伟祥

吴伟祥

粉丝 31
博文 482
码字总数 283221
作品 0
泉州
后端工程师
私信 提问
2017第四届中国国际大数据大会9月在京召开

随着国家大数据战略的全面推进,我国大数据产业发展迎来“黄金期”,数据驱动的创新正逐步向经济社会各行业领域融合应用,拓展出行业发展新空间,助力行业结构转型升级。同时,随着双创战略、...

玄学酱
2018/03/19
0
0
LeetCode.1108-使IP地址无效(Defanging an IP Address)

这是小川的第393次更新,第426篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第257题(顺位题号是1108)。给定有效(IPv4)IP地址,返回该IP地址的无效版本。 一个无效的IP地...

程序员小川
07/29
0
0
LeetCode算法题-Reverse String(Java实现)

这是悦乐书的第205次更新,第217篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第73题(顺位题号是344)。编写一个以字符串作为输入并返回字符串的函数。例如: 输入:“hel...

小川94
2018/12/18
0
0
LeetCode算法题-To Lower Case(Java实现)

这是悦乐书的第301次更新,第320篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第169题(顺位题号是709)。实现具有字符串参数str的函数ToLowerCase():以小写形式返回相同的...

小川94
04/09
0
0
LeetCode.941-有效山形数组(Valid Mountain Array)

这是悦乐书的第360次更新,第387篇原创 01 看题和准备 今天介绍的是算法题中级别的第题(顺位题号是)。给定一个整数数组,当且仅当它是一个有效的山形数组时返回。 A是一个山形数组,当且仅...

小川94
06/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0
PHP+Ajax微信手机端九宫格抽奖实例

PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现。支持可以设置中奖概率等。 奖品列表 <div class="lottery_list clearfix" id="lottery"> ......

ymkjs1990
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部