您的位置:首页 > 理论基础 > 数据结构算法

数据结构逻辑结构与存储结构

2013-12-24 22:10 225 查看
存储结构是数据的逻辑结构用计算机语言的实现,常见的存储结构有 顺序存储,链式存储,索引存储,以及散列存储。其中散列所形成的存储结构叫散列表(又叫哈希表),因此哈希表也是一种存储结构。栈只是一种抽象数据类型,是一种逻辑结构,栈逻辑结构对应的顺序存储结构为 顺序栈,对应的链式存储结构为链栈。循环队列是队列的顺序存储结构,链表是线性表的链式存储结构。

http://topic.csdn.net/t/20010628/19/174696.html

数据:指能够被计算机识别,存储,加工处理的信息载体

数据元素:数据的基本单位,数据元素可以由若干数据项组成

数据类型:是一个值的集合以及在这些值上定义的一组操作的总称

数据结构:指的是数据之间的相互关系,包含三个内容:逻辑结构,存储结构和数据的运算

数据的逻辑结构指数据元素之间的逻辑关系,分两种,线性结构和非线性结构

对于数据结构课程而言,简单地说,线性结构是n个数据元素的有序(次序)集合。

线性结构:有且只有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。线性表就是一个典型的线性结构

它有四个基本特征:

  1.集合中必存在唯一的一个"第一个元素";

  2.集合中必存在唯一的一个"最后的元素";

  3.除最后元素之外,其它数据元素均有唯一的"后继";

  4.除第一元素之外,其它数据元素均有唯一的"前驱"。

  数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构。

  如(a1,a2,a3,.....,an),a1为第一个元素,an为最后一个元素,此集合极为一个线性结构的集合。

相对应于线性结构,非线性结构的逻辑特征是一个结点元素可能对应多个直接前驱和多个后继。

  常用的线性结构有:线性表,栈,队列,双队列,数组,串。

  关于广义表,是一种非线性的数据结构。

  常见的非线性结构有:树(二叉树等),图(网等)。

试举一个数据结构的例子?

http://wenku.baidu.com/view/3ef99d18a8114431b90dd8f2.html

线性表的逻辑结构与存储结构之间的关系。在计算机中如何将线性表的结点存放到存储单元中,有许多方法,最简单的方法就是按顺序存储,就是按线性表的逻辑结构次序依次存放在一组地址连续的存储单元中。在存储单元中的各元素的物理位置和逻辑结构中各结点相邻关系是一致的。线性表的链式存储结构与顺序表不同,链表是用一组任意的存储单元来存放线性表的结点,这组存储单元可以分布在内存中各个位置上。因此链表中的结点的逻辑次序与物理次序不一定相同。

ADT的继承关系

下面的列表显示了常用的ADT(抽象数据类型)以及它们之间的继承关系。次一级的(用缩进表示)项目继承了前一级的项目的数学性质(事实上所有的ADT都是集合的子孙,不过为了ADT实现的方便将其他ADT看作独立的成员)。其中重要的ADT用粗体标志。我力求使这些ADT按照他们的数学性质进行准确的分类,但由于许多ADT同时具有多种其他ADT的性质,而且某一ADT用不同的数据结构来实现也会使其产生特殊的性质,因此分类并不是很准确,同时有些英文术语可能翻译得不准确,请大家批评指正

 

注意 该关系是按照ADT的数学性质而不是按其实现方法确定的。

 

Table of Common ADT

集合 set

包 bag (多重集合 multi-set)
并查集
字典 dictionary

有序字典 ordered dictionary
散列表 hash table

映射 map

数组 array

后缀数组 suffix array
排序数组 sorted array
分散链结散列表 separate chaining hashing
合并链结散列表 coalesced hashing
直链散列表 direct chaining hashing

表 list

排序表 sorted list
链表 linked list

单链表 singly linked list
邻接表 skip list
双链表 doubly linked list (two-way list)

栈 stack

bounded stack

队列 queue

二端队列 deque (doubly-ended queue)

pile

限制队列 bounded queue

串 string

文本 text

矩阵 matrix

长方形矩阵 rectangular matrix
方阵 square matrix
稀疏矩阵 sparse matrix
粗糙矩阵 ragged matrix
同一矩阵 uniform matrix
上三角矩阵 upper triangular matrix
下三角矩阵 lower triangular matrix

优先队列 priority queue

二项式堆 binomial heap

二项式队列 binomial queue

散列堆 hash heap
两端优先队列 double-ended priority queue
单调优先队列 monotone priority queue
Van Emde-Boas 优先队列 Van Emde-Boas priority queue

图 graph

超图 hypergraph
多图 multigraph
无向图 undirected graph
有向图 directed graph (digraph)

树 tree

堆 heap

弱堆 weak-heap
shadow heap
Fibonnaci堆 Fibonnaci heap

检索树 trie (digital tree)

空间检索树 quad trie
Patricia 树 Patricia tree
三重搜索检索树 ternary search trie
后缀树 suffix tree

多后缀树 multi suffix tree

平衡树 balanced tree
完全树 complete tree

k-ary堆 k-ary heap

有序树 ordered tree

空间树 quadtree

线性空间树 linear quadtree
八叉树 octtree (octree)

平衡有序树 balanced ordered tree
二项式树 binomial tree

Bk树 Bk tree

搜索树 search tree

(a,b)树 (a,b)-tree
k-d树 k-d tree

二分树 bintree
空间k-d树 skd-tree

自适应k-d树 adaptive k-d tree
平衡自适应k-d树 k-d-B-tree
平衡搜索树 balanced search tree

2-3 树 2-3 tree
红黑树 red-black tree
B-树 B-tree

B+-树 B+-tree
B*-树 B*-tree
BV-树 BV-tree
2-3-4 树 2-3-4 tree

平衡多向树 balanced multiway tree

二叉树 binary tree

BD树 BD-tree

GBD-tree

二叉空间分割树 BSP-tree (Binary Space Partitioning tree)
完全二叉树 complete binary tree

二叉堆 binary heap

平衡二叉树 balanced binary tree

AVL树 AVL tree

二叉搜索树 binary search tree

倾斜树 splay tree

随机二叉搜索树 randomized binary search tree (RBST)

平衡二叉搜索树 balanced binary search tree
离散间隔编码树 diet=discrete interval encoding tree
高度平衡二叉搜索树 height-balanced binary search tree
平衡二叉搜索树 balanced binary search tree

红黑树 red-black tree
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: