当前位置:文档之家› 空间数据索引算法

空间数据索引算法


树的类型定义
n(n≥0)个元素的有 限集合
树的类型定义
数据对象 D:
D是具有相同特性的数据元素的集合。
数据关系 R:
若D为空集,则称为空树 。 否则: (1) 在D中存在唯一的称为根的数据元素root; (2) 当n>1时,其余结点可分为m (m>0)个互
不相交的有限集T1, T2, …, Tm,其中每一 棵子集本身又是一棵符合本定义的树, 称为根root的子树。
非线性结构 树,二叉树 图(或网络),广义表
数据的逻辑结构可归结为以下四类
线性结构 树形结构 图状结构 集合结构
数据的存储结构
数据的存储结构是逻辑结构用计算机 语言的实现
数据的存储结构依赖于计算机语言
顺序存储表示:所有元素存放在一片连续
的存贮单元中,逻辑上相邻的元素存放到计算机内 存仍然相邻。
该对象中所有数据成员之间的关系 的有限集合
数据的逻辑结构
数据的逻辑结构从逻辑关系上描述 数据,与数据的存储无关
数据的逻辑结构可以看作是从具体 问题抽象出来的数据模型
数据的逻辑结构与数据元素本身的 形式、内容无关
数据的逻辑结构与数据元素的相对 位置无关
数据的逻辑结构分类
线性结构 线性表,堆栈,队列,串
2.搜索不成功 或搜索失败。作为结 果, 应报告一些信息, 如失败标 志、位置等
通常称用于搜索的数据集合为搜索结 构,它是由同一数据类型的对象(或记 录)组成
在每个对象中有若干属性,其中有一 个属性,其值可唯一地标识这个对象。 称为关键码。使用基于关键码的搜索, 搜索结果应是唯一的。但在实际应用 时,搜索条件是多方面的,可以使用 基于属性的搜索方法,但搜索结果可 能不唯一
数据(data)
数据是信息的载体,是描述客观事物的数、字符、以及所有能输入到计算机中,被计算 机程序识别和处理的符号的集合。
数值性数据 非数值性数据
数据元素 (data element):
数据的基本单位。在计算机程序中常作为一个整体进行 考虑和处理。有时一个数据元素可以由若干数据项(Data Item)组成。数据项是具有独立含义的最小标识单位。数据元 素又称为元素、结点、记录。
Assign(T, cur_e, value) // 给当前结点赋值
InsertChild(&T, &p, i, c) // 将以c为根的树插入为结点p的第i棵子树
UNIX文件系统的系统结构图
/ (root)
bin
lib
user
etc
math ds
sw
yin tao xie
Queue.cpp
Stack.cpp
Tree.cpp
数据结构的特点
综合以例子可见,描述这类非数值计算问题的数学模型不再是数学方程,而是诸如 表、树和图之类的数据结构。
因此简单说来,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象 以及它们之间的关系和操作等等的学科。
祖先结点、子孙结点
A
B
C
D
E F GH I J
结点的层次
KL
假设根结点的层次为1,
M
第l 层的结点的子树根结
点的层次为l+1
树的深度 树中叶子结点所在的最大
层次
森林
F
root

是m(m≥0)棵互
B
C
D
不相交的树的集合 E F G H I J
KL
M
任何一棵非空树是一个二元组
Tree = (root,F)
基本术语
结点 数据元素+若干指向子树的分支 结点的度 分支的个数 树的度 树中所有结点的度的最大值 叶子结点 度为零的结点 分支结点 度大于零的结点 D
HI J
M
A
(从根到结点的)路径 B C D
由从根到该结点 E F G H I J
所经分支和结点构 K L
M

孩子结点、双亲结点
兄弟结点、堂兄弟结点
其中 root 被称为根结点
F 被称为子树森林
有向树
(1) 有确定的根 (2) 树根和子树根之间为有向关系
有序树
子树之间存在确定的次序关系
无序树
子树之间不存在确定的次序关系
对比树型结构和线性结构 的结构特点
线性结构 第一个数据元素
(无前驱)
最后一个数据元素 (无后继)
其它数据元素 (一个前驱、
一个后继)
树型结构 根结点
(无前驱)
多个叶子结点 (无后继)
其它数据元素 (一个前驱、
多个后继)
基本操作: 查找类 插入类 删除类
查找类:
Root(T) // 求树的根结点 Value(T, cur_e) // 求当前结点的元素值 Parent(T, cur_e) // 求当前结点的双亲结点 LeftChild(T, cur_e) // 求当前结点的最左孩子
数据对象 (data object)
数据的子集。具有相同性质的数据成员(数据元素)的集合 整数数据对象
N = { 0, 1, 2, … }
学生数据对象
什么是数据结构
定义: 由某一数据对象及该对象中所
有数据成员之间的关系组成 记为:Data_Structure = {D, S} 其中,D 是某一数据对象,S 是
学号 1 98131 2 98164 3 98165 4 98182 5 98224 6 98236 7 98297 8 98310 9 98318
“学生”表格
姓名 刘激扬 衣春生 卢声凯 袁秋慧 洪伟 熊南燕 宫力 蔡晓莉 陈健
性别 籍 贯 出生年月 男 北 京 1979.12 男 青 岛 1979.07 男 天 津 1981.02 女 广 州 1980.10 男 太 原 1981.01 女 苏 州 1980.03 男 北 京 1981.01 女 昆 明 1981.02 男 杭 州 1979.12
RightSibling(T, cur_e) // 求当前结点的右兄弟 TreeEmpty(T) // 判定树是否为空树
TreeDepth(T) // 求树的深度 TraverseTree( T, Visit() ) // 遍历
插入类:
InitTree(&T) // 初始化置空树
CreateTree(&T, definition) // 按定义构造树
链接存储表示:所有元素存放在可以不连
续的存贮单元中,但元素之间的关系可以通过地址 确定,逻辑上相邻的元素存放到计算机内存后不一 定是相邻的。
所谓搜索,就是在数据集合中寻找 满足某种条件的数据对象
1.搜索成功 即找到满足条件的数据 对象,这时, 作为结果, 可报告该对 象在结构中的位置, 还可给出该对 象中的具体信息
相关主题