数据结构的图和树、语义树笔记

【论文】)基于语义树的语句相似度和相关度在问答系统中的分析.pdf
【视频】尚学堂数据结构和算法视频教程
【博客】数据结构之树和图相关笔记
【论文】表述自然语言的语义树
我的笔记:

第一课 基本概念

1,数据
2,数据项:最小数据单位
3,数据元素:数据的基本单位
4,数据对象:性质相同的数据元素的集合
在这里插入图片描述
5,数据结构:相互之间存在一种或多种特定关系的数据元素的结合
在这里插入图片描述
逻辑结构分类1:
线性结构:有且只有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前驱和一个直接后驱。
在这里插入图片描述
非线性结构:一个结点可能对应多个直接前驱和多个直接后驱。常见的非线性结构有树,图。
在这里插入图片描述
逻辑结构分类2:
集合结构:元素确定,互不相同,没有先后之分
线性结构:一对一
树状结构:一对多
网络结构:多对多
在这里插入图片描述
问题:一个班的学生是什么逻辑结构?(上述四种结构都有可能)
存储结构
1,顺序存储结构:把逻辑上相邻的结点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现。
优点:节省空间
缺点:插入和删除操作需要移动元素,效率比较低(如插队)。
2,链式存储结构:数据元素的存储对应的是不连续的存储空间,每个存储节点对应一个需要存储的数据元素。对于插入、删除节点,只要改变节点中的指针。
3,索引存储结构:除建立存储节点信息外,还建立附加的索引来标识节点的地址。(如目录)
4,散列存储结构:根据节点的关键字直接计算出节点的地址。

第二课 算法和时间空间复杂度

1,算法和时间复杂度概念(1级)
评价算法优劣依据:复杂度(时间复杂度和空间复杂度)
特征:输入,输出,可行性,有穷性,确定性

2,分析时间复杂度和空间复杂度(1级)

时间复杂度

计算
在这里插入图片描述
实例:
在这里插入图片描述在这里插入图片描述
常用的时间复杂度级别(尽量控制在平方阶前面):
在这里插入图片描述

空间复杂度

算法的存储量包括程序本身所占空间、输入数据所占空间、辅助变量所占空间。其中输入数据所占空间与自身有关,和算法无关,则只需要分析除输入和程序之外(如临时变量)的辅助变量所占额外空间。
在这里插入图片描述
在这里插入图片描述
对于递归算法,代码一般比较简短,算法本身所占用存储空间较少,但运行需要占用较多的临时工作单元;对于非递归算法,代码比较长,算法本身所占用存储空间较多,但运行需要占用较少的存储单元。

第三课 线性表、栈和队列

1,线性表(linear list):n个类型相同数据元素的有限序列。
线性表的逻辑结构:又定义分析(类比糖葫芦)
线性表的存储结构:在内存中分配连续空间,位置就隐含着地址,但是插入和删除元素效率低。

  • 顺序表——顺序存储空间
  • 单链表——链式存储空间
  • 其他链表
    在这里插入图片描述
  • 双向链表(头结点和尾结点为空)
  • 循环列表(首尾相连)
  • java中的线性表:
    Vector 顺序表
    ArrayList 顺序表
    LinkedList 双向链表

2,栈和队列

第四课 树和二叉树

:由集合以及集合上的关系构成。元素称为结点,定义的关系称为父子关系。有且只有一个根。当n>1,其余结点分为m(m>0)个互不相交的有限集,其中每一个集合本身又是一棵树,称为根的子树。
结点的度:结点拥有子树的个数。
树的度:各个结点的度中的最大值。
叶子(终端结点):度为零的结点。
在这里插入图片描述
结点的层次:从根开始定义,根为第一层。
树的深度:最大层次数为树的深度或高度。(如下图为深度为4)
在这里插入图片描述
关系:父亲、儿子、兄弟(有同一个父结点)、祖先、子孙(B的子孙有EFKL)、
堂兄弟(父亲在同一层次)
有序树:从左到右是有序的。若不特别声明,一般讨论为有序树。
在这里插入图片描述
m叉树:最多分m个叉的树
森林:m(m>=0)棵互不相交的树组成的集合。其子树的集合即为森林。
在这里插入图片描述
二叉树
满二叉树
完全二叉树
注:满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。
在这里插入图片描述
二叉树的存储结构(顺序与链式)在这里插入图片描述

第五课 二叉树的遍历策略

先序&先根遍历:根 左子树 右子树 (1 45 2367)
中序&中根遍历:左子树 根 右子树 (45 1 3 2 67)
后序&后根遍历:左子树 右子树 根 (5 4 3 7 6 2 1)
按照&层次遍历(1 42 536 7)
在这里插入图片描述
题目:(灵活运用根的位置)
在这里插入图片描述
遍历实现(自行查找接口与方法问题)

先序

在这里插入图片描述

中序

在这里插入图片描述

后序

在这里插入图片描述

二叉树高度

在这里插入图片描述

结点数

在这里插入图片描述

在二叉树中查找值

在这里插入图片描述

按层次遍历

在这里插入图片描述

中序无递归遍历(4513267)

在这里插入图片描述

第六课 图的定义存储和遍历

1,图的定义
在这里插入图片描述
在这里插入图片描述
无向图即双向图。
在这里插入图片描述
2,图的存储
邻接矩阵(二维数组 顺序结构)
能到用权(不标默认为1)在箭头表示,不能到则用 ∞ 表示。
在这里插入图片描述
邻接表(链表 链式存储结构)
在这里插入图片描述
在这里插入图片描述
3,图的遍历

  • 深度优先遍历:类似于树的先根遍历,是其推广(可以有递归和借助栈的非递归)
  • 广度优先遍历:类似于树的层次遍历,是其推广(借助队列 非递归)
    例子1
    在这里插入图片描述
    例子2
    在这里插入图片描述
    例子3(a找bcd取决于链中存储最相邻的)
    在这里插入图片描述

4,最短路径

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值