【数据结构】数据结构的概述

一、概述
什么是数据结构:
数据:由有限的符号(比如,"0"和"1",具有其自己的结构、操作、和相应的语义)组成的元素的集合。
结构:元素之间的关系的集合。
数据结构:信息的一种组织方式,其目的是为了提高算法的效率,它通常与一组算法的集合相对应,通过这组算法集合可以对数据结构中的数据进行某种操作。它用来反映一个数据的内部构成,即一个数据由那些成分数据构成,以什么方式构成,呈什么结构。

数据结构的构成:
数据结构分为逻辑上的数据结构和物理上的数据结构。逻辑上的数据结构反映成分数据之间的逻辑关系即逻辑结构。物理上的数据结构反映成分数据在计算机内部的存储安排即存储结构。数据结构是数据存在的形式。

MarkDown代码:

```
    graph TB
    A[数据结构]-->B[逻辑结构]
    A[数据结构]-->C[存储结构]
    B[逻辑结构]-->D[集合结构]
    B[逻辑结构]-->F[线性结构]
    B[逻辑结构]-->G[树状结构]
    B[逻辑结构]-->H[网络结构]
    C[存储结构]-->E[顺序存储]
    C[存储结构]-->I[链式存储]
    C[存储结构]-->J[索引存储]
    C[存储结构]-->K[散列存储]
  ```

逻辑结构:

⑴集合结构。在集合结构中,数据元素间的关系是“属于同一个集合”。集合是元素关系极为松散的一种结构。
⑵线性结构。该结构的数据元素之间存在着一对一的关系。
⑶树型结构。该结构的数据元素之间存在着一对多的关系。
⑷图形结构。该结构的数据元素之间存在着多对多的关系,图形结构也称作网状结构。

存储结构:

⑴顺序存储结构:把逻辑上相邻的节点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现。由此得到的存储结构为顺序存储结构。

优点:是节省存储空间,因为分配给数据的存储单元全用存放结点的数据,结点之间的逻辑关系没有占用额外的存储空间。采用这种方法时,可实现对结点的随机存取,即每一个结点对应一个序号,由该序号可以直接计算出来结点的存储地址。但顺序存储方法的主要缺点是不便于修改,对结点的插入、删除运算时,可能要移动一系列的结点。
缺点:插入和删除操作需要移动元素,效率较低。

⑵链式存储结构:在计算机中用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的).

特点:  

1、比顺序存储结构的存储密度小 (每个节点都由数据域和指针域组成,所以相同空间内假设全存满的话顺序比链式存储更多)。  

2、逻辑上相邻的节点物理上不必相邻。  

3、插入、删除灵活 (不必移动节点,只要改变节点中的指针)。

4、查找结点时链式存储要比顺序存储慢。

5、每个结点是由数据域和指针域组成。

⑶索引存储结构:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。

⑷散列存储结构:根据结点的关键字直接计算出该结点的存储地址。

时间: 2024-10-06 07:24:49

【数据结构】数据结构的概述的相关文章

[考研系列之数据结构]线性表概述

1.脑图 2.表示方法 按照数据结构概述所说,线性表有两种表示方法分别是顺序表示和链式表示,链表就是链式表示的典型. 我们知道链式表示是分配了n块内存空间,可以认为彼此不连续,所以不能用偏移量去定位每个元素. 下面就先说最简单的单向链表: 如果每个数据元素能有一个指针指向下一个元素的话,那么只需要知道第一个数据元素就能一个一个的遍历整个链表了,这就是单向链表. 对于每个链表元素我们称之为节点,每个节点都有两个域:数据域&指针域 数据域就是数据元素所在的区域,而指针域则是存储指向另一个节点的指针的

[考研系列之数据结构]数据结构概述

1.脑图 2.数据结构 2.1 抽象数据类型 表示法: (D,S,P) D:数据对象 S:D上的关系集 P:对D的基本操作集 ADT格式 ADT 抽象数据类型名{ 数据对象:<数据对象定义> 数据关系:<数据对象的定义> 基本操作:<基本操作的定义> }ADT 抽象数据类型名 基本操作的格式: 基本操作名(参数表) 初始条件:<初始条件描述> 操作结构:<操作结果描述> 2.2 分类 2.2.1 按值的不同特性 原子类型的值是不能分解的,如C中基

数据结构1(概述)

第1章  概述 [例1-1]分析以下程序段的时间复杂度. for(i=0;i<n;i++) for(j=0;j<m;j++) A[i][j]=0; 解:该程序段的时间复杂度为O(m*n). [例1-2]分析以下程序段的时间复杂度. i=s=0;    ① while(s<n) {  i++;  ② s+=i; ③ } 解:语句①为赋值语句,其执行次数为1次,所以其时间复杂度为O(1).语句②和语句③构成while循环语句的循环体,它们的执行次数由循环控制条件中s与n的值确定.假定循环重复

数据结构 1、概述 特性、分类、复杂性分析

数据结构是描述非数值计算再实体中的数学模型以及在计算机中的表示方法,以及这些模型进行的操作如何在计算机中中进行操作 基本概念: 数据:所有能被输入到计算机中,且能被计算机处理的符号的集合---是计算机操作对象的总称 数据结构的逻辑组织 线性结构:线性表(表.栈.队列.串等) 非线性结构:  树(二叉树,Huffman树,二叉索引树等) 图(有向图,无向图等) 图>树>二叉树>线形图     (>包含) 数据结构的存储结构 逻辑结构到物理内存的映射 四类:顺序(存储单元的顺序地址)

数据结构与算法概述(基本概念)

什么是数据结构:数据 + 关系 关系可分为:集合,线性结构,树结构,图结构或网状结构. 存储结构:顺序存储,链式存储,索引存储,散列存储. 数据类型:原子类型,结构类型 1.算法的时间复杂度 2.算法的空间复杂度 2.1 算法本身占用的空间 2.2 算法的运行时占用的空间 2.3 算法运行时临时占用的空间

Java核心类库—数据结构—数据结构的概述

什么是数据结构: 数据结构是计算机存储.组织数据的方式. 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率.数据结构往往同高效的检索算法和索引技术相关. 常见的数据结构,数组(Array),栈(Stack),链表(Linked List),哈希表(Hash),队列(Queue),堆(Heap),图(Graph),树(Tree) java中集合框架其实就是数据结构的实现的封装,这里是模拟和实现数据结构. 不同的数据结构的操作性

数据结构和算法概述

1 数据结构和算法的概念 数据结构:对计算机内存中的数据的一种安排. 算法:对数据结构中的数据进行各种处理. 2 数据结构和算法的应用方面 ①现实世界的数据存储 ②程序员的工具 ③现实世界的建模 3 常用的数据结构以及优缺点 数组 优点:插入快(知道下标).查找快(根据索引查找) 缺点:查找慢(根据内容查找),删除慢,数组的长度是固定的 有序数组 优点:比无序的数组查找块 缺点:删除和插入慢,数组的长度是固定的 栈 优点:提供后进先出的存取方式 缺点:存取其他项很慢 队列 优点:提供先进先出的存

数据结构学习笔记——概述

一.概念 数据:日常生活中遇到的抽象数据 结构:一组相关的抽象数据之间的关系 二.学习目标 1.抽象数据及它们之间的关系(逻辑结构) 2.对各种抽象数据的存储(存储结构) 3.对不同存储方式的数据处理(实现方法) 三.逻辑结构 分为线性结构.非线性结构 线性结构:线性表.栈.队列 非线性结构:树.图 四.存储结构 顺序存储.链式存储

数据结构-数据结构的扩展

1 如何做数据扩张 4个步骤: 选择一种基础数据结构 确定基础数据结构中要维护的附加信息 检查基础数据结构上一些操作是否需要维护附加信息 为附加信息添加一些新的操作 2 举例 扩展红黑树(或是其他树),能够在O(lgn)内获取第i小的元素. 为每个节点添加一个size成员变量,表示当前节点所有子节点的个数+1,加1是因为自己还有一个.因此: pre->size=pre->left->size+pre->right->size+1; 要想找到第i小的元素 RBNode* RBT

深入剖析Redis系列(四) - Redis数据结构与全局命令概述

前言 Redis 提供了 5 种数据结构.理解每种数据结构的特点,对于 Redis 的 开发运维 非常重要,同时掌握 Redis 的 单线程命令处理 机制,会使 数据结构 和 命令 的选择事半功倍. 接下来的几篇文章,将从如下几个方面介绍 Redis 的几种数据结构,命令使用及其应用场景. 预备知识:几个简单的 全局命令,数据结构 和 内部编码,单线程命令 处理机制分析. 数据结构特性:5 种 数据结构 的特点.命令使用.应用场景. 数据管理:键管理.遍历键.数据库管理. 正文 1. 预备知识