数据结构思维导图及一些概念的辨析

宏观图:

这里写图片描述

概念:

数据结构的定义:
      数据结构( data structure)是相互之间存在一种或多种特定关系的数据元素的集合,在任何问题中,数据元素都不是孤立存在
的,而是在它们之间存在着某种关系,这种数据元素相互之间的关系称为结构(结构=关系)。(【元素+关系】  的集合就叫数据结构

关系(或结构)的划分:

1.集合关系:

    元素之间只有 “同属于一个集合”的这一个关系。

2.线性关系:

    数据元素之间存在一个对一个的关系

3.树形关系:

   数据元素之间存在一个对多个的关系

4.图状关系

   数据元素之间存在多个对多个的关系

:从离散数学的角度:数据结构是一个二元组Data Structure=(D,S)
       其中:D是数据元素的有限集,S是D上关系的有限集

数据结构在计算机中的表示:

     计算机中表示信息的最小单位是二进制数的一位,叫做位(bit)(数字0或1),几个0或1(位)组成的一串数(位串)称为元素

顺序表示:借助元素在存储器中的相对位置(借助元素在内存中的偏移量)来表示数据元素之间的逻辑关系--高级语言中用数组这一结构类型来实现-----注意:不是非结构的原子类型【基本类型(整型,实型,字符型,枚举型)。以及指针类型,空类型】

非顺序表示:借助指示元素存储地址的指针( pointer)表示数据元素之间的逻辑关系。--高级语言中用链表这一结构类型来实现

 

数据结构的线性结构和非线性结构:

数据结构思维导图及一些概念的辨析_第1张图片

线性数据结构:它是有序数据元素的集合。其中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,                          其它数据元素都是首尾相接的。

常用的线性结构有:线性表(【线性(顺序)表---比如java里的List集合类和线性(链式)表--比如java里的LinkList集合类】),                                  栈,队列,双队列,数组,串 

非线性数据结构中:各个数据元素不再保持在一个线性序列中,每个数据元素可能与零个或者多个其他数据元素发生联系

常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等),图。(其中多维数组是由多个一维数组组成的,所以不再                                      是线性结构)

线性结构特点:
1.集合中必存在唯一的一个"第一个元素";
2.集合中必存在唯一的一个"最后的元素";
3.除最后元素之外,其它数据元素均有唯一的"后继";
4.除第一元素之外,其它数据元素均有唯一的"前驱"。

注意:

     1. 从数据结构的角度:栈,队列,双队列,数组,串 --- 它们都是线性表。

     从数据类型和操作角度看:它们都有其自身的特殊性。所以也常常将它们单独抽出来,有别于线性表来进行讨论。栈,队列是操作受限的特殊线性表。是一类重要的抽象数据类型。(多型数据类型)。串是一种特殊的线性表,其中元素全部为字符型;串和线性表的操作有较大的区别;串通常以整体作为操作的对象,而线性表通常以单个元素作为操作的对象

   2. 顺序还是非顺序不是看是否用到了指针。而是看它们在内存中的地址是连续的(顺序),还是非连续的(非顺序)。比如线性表:=结构体{基本数据类型+指针类型}+对结构体(中数据)的操作(/处理)。对结构体的操作不同,才导致线性(顺序)表(顺序的)和线性(链式)表(非顺序的)的产生。

 

计算机中的树:

二叉树
  • 二叉查找树(BST) 
  • 笛卡尔树 
  • MVP树 
  • Top tree 
  • T树
 
自平衡二叉查找树
  • AA树 
  • AVL树 
  • 左倾红黑树 
  • 红黑树 
  • 替罪羊树 
  • 伸展树 
  • 树堆 
  • 节点大小平衡树
 
B树
  • B+树 
  • B*树 
  • Bx树 
  • UB树 
  • 2-3树 
  • 2-3-4树 
  • (a,b)-树 
  • Dancing tree 
  • H树
 
Trie(字典树)
  • 后缀树 
  • 基数树 
  • 三叉查找树 
  • X-快速前缀树 
  • Y-快速前缀树
 
二叉空间分割(BSP)树
  • 四叉树 
  • 八叉树 
  • k-d树 
  • 隐式k-d树 
  • VP树
 
非二叉树
  • 指数树 
  • 融合树 
  • 区间树 
  • PQ树 
  • Range tree 
  • SPQR树 
  • Van Emde Boas tree
 
空间数据分割树
  • R树 
  • R*树 
  • R+树 
  • X树 
  • M树 
  • 线段树 
  • 希尔伯特R树 
  • 优先R树
 
其他树
  •  
  • 散列日历 
  • 散列树 
  • Finger tree 
  • Order statistic tree 
  • Metric tree 
  • Cover tree 
  • BK树 
  • Doubly chained tree 
  • iDistance 
  • Link-cut tree
  • Fenwick tree 
  • Log-structured merge-tree

补充

     哈夫曼树:又称最优二叉树,是一类带权路径长度最短的树。

     线索二叉树:加上线索的二叉树。

     最小生成树:一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边,它是最小权重生成树的简称 。

 

计算机中的图:

è¿éåå¾çæè¿°

参考文章:

1.数据结构教材

2.https://blog.csdn.net/YYZZHC999/article/details/75923540           杨晓慧_Hepburn

3.https://blog.csdn.net/vivian_wanjin/article/details/86299709           vivian_wanjin

4.百度百科 

5.https://blog.csdn.net/Augusdi/article/details/36178663                     Augusdi

 

你可能感兴趣的:(数据结构与算法)