数据结构的概念和分类

1.1 基本概念
    在计算机中, 数据结构就是指计算机存储, 组织数据方式
    的描述, 主要描述数据元素之间的逻辑关系以及在计算机
    中存储形式, 也要相互之间存在一种或者多种特定关系
    的数据的集合
    
    数据结构的选择决定了程序执行的时间效率
    和存储效率的高低
    
    计算机程序 = 数据结构 + 算法
    
1.2 数据结构的3个层次
(1) 逻辑结构
        - 主要是描述数据元素之间的逻辑关系

(2) 物理结构
        - 主要描述数据结构元素之间的位置关系, 也就是数据元素在
            计算机中的存储形式
            
(3) 运算结构
        - 主要描述数据结构如何实现以及常见的基本操作
        
1.3 逻辑结构的分类
(1) 集合结构
        - 主要描述所有数据结构元素属于一个集合,
            不强调数据元素之间的关系
        如:
            统称为一个班级
            2 3 5 7 11 13 17 ... 都属于素数 / 质数

(2) 线性结构
        - 主要描述所有数据元素之间存在一对一的前后关系
            该结构中必须存在唯一的首元素
            该结构中必须存在唯一的尾元素
            除了首元素之外, 每个元素有且只有一个前趋元素
            除了尾元素之外, 每个元素有且只有一个后继元素    
            
        如:
            等公交时排的队伍
            手链
            
(3) 树形结构
        -    主要描述数据元素之间存在一对多的父子关系
            整个树形结构有且只有一个其实元素, 叫根元素
            整个树形结构中顶端的元素叫做叶元素
            除了根元素之外, 所有的元素有且只有一个前趋元素
            除了叶元素之外, 所有的元素可以有多个后继元素
            
            如:
                树
                家谱
                
(4) 网状结构(图形结构)
        - 主要描述数据元素之间存在多对多的交叉映射结构
            该结构中的元素可以有多个前趋和多个后继元素
            
        如:
            蜘蛛网
            球拍
            
1.4 物理结构的分类
(1) 顺序存储结构
        - 采用一组连续的存储单元依次存放逻辑上相邻的各个元素
         如果表中的各个元素都有相同的属性,
         那么每个元素所占的存储单元相同
         采用C语言中的数组类型加以描述
        
思考:
        顺序存储结构有什么优点以及有什么缺点
    优点:
        a. 只需要申请存放数据元素本身的存储空间即可
             不需要额外的存储空间来表达数据元素之间的关系
             因此比较节省内存空间
        b. 支持下标访问, 可以实现随机访问
        
    缺点:
        a. 申请存储空间是需要预先指定数据元素的个数来确定
             存储空间的大小, 如果存储空间过小则不够用, 如果
             空间过大则造成浪费    
        b. 申请连续的存储空间导致内存空间的利用率比较低
             因为小块的内存空间可能使用不了
        c. 插入/删除元素是, 可能需要移动大量的元素    
        
            
(2) 链式存储结构
        - 采用一组不连续的存储单元来存储所有的元素, 不要求
            逻辑相邻的元素在物理位置上也相邻, 而是为每一个元素
            构造一个独立的存储单元, 该存储单元叫做节点
            
            每个节点由两部分组成, 分别存放数据元素本身 和
            记录下一个节点的首地址
            
            在C语言中并没有提供具体的数据类型来描述链式存储结构
            需要我们程序员手动编码实现
            
    优点:
        a. 申请存储空间时不需要预先制定数据元素的个数来确定存储空间的大小
        b. 不需要申请连续的存储空间因此存储空间的利用率比较高可以使用零散的小块内存
        c. 插入/删除元素比较方便,不需要移动大量的元素
    
    缺点:
        a. 申请内存空间时, 除了申请存放数据元素本身的存储空间之外,
             还需要额外的存储空间来表达数据
             元素之间的关系,因此想对来说内存空间的消耗比较大
        b. 不支持下标访问, 也不方便实现随机访问
                        
1.5 逻辑结构和物理结构的关系
        一般来说, 逻辑结构采用何种物理结构进行实现
        并没有明确的规定, 通常根据实现的难易程度,
        以及在时间复杂度和空间复杂度方面的考虑,
        来选择合适的物理结构, 也不排除一种逻辑结构
        采用多种物理结构来实现的情况    
        
1.6 运算结构
(1) 创建和销毁
        申请存储空间 => 建立数据结构 => 释放存储空间 => 销毁数据结构
        
(2) 插入/删除
        插入 - 增加元素
        删除 - 减少元素
        
(3) 修改和查找
        遍历数据结构中所有的元素
        修改指定的元素值

(4) 排序
        采用一些常见的排序算法和查找算法

时间: 2024-11-03 22:16:27

数据结构的概念和分类的相关文章

一 数据结构的概念,时间复杂度和空间复杂度

一. 什么是数据结构: 对到底什么是数据结构这个概念,一直有很多不同的解释,也有许多不同的争论,这里只代表了我个人的认识. 数据结构:我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某 个功能(比如查找某个元素,删除某个元素等)而执行的相应操作,这个相应的操作也叫做算法. 1.算法的实现是依据不同的数据结构的. 2.算法:是对特定问题求解步骤的一种描述,以下特征:有穷性,确定性,可行性,输入和输出: 二. 时间复杂度和空间复杂度: (

[数据结构]基本概念2

逻辑结构:数据之间的关系.常见的逻辑结构只有两种,即[线性结构]和[非线性结构] 物理结构:在计算机中的存储方法.常见的物理结构只有两种,即[顺序存储]和[链式存储] 常见数据结构: 一.线性表 1.线性表的逻辑结构: a.有且只有一个开始结点a1,没有直接前驱,有唯一的直接后继a2 b.有且只有一个终端结点an,没有直接后继,有唯一的直接前驱an-1 c.剩余的内部结点都有唯一的直接前驱和直接后继 2.线性表的操作: a.创建线性表 b.获取元素个数 c.随机获取某一个元素 d.插入 e.删除

射频识别技术漫谈(1)——概念、分类

现代社会智能卡已经渗透到生活的方方面面,公交卡.考勤卡.身份证.手机卡等等数不胜数. 智能卡按使用时是否和读卡器接触可分为接触式智能卡和非接触式智能卡,接触式智能卡上有6-8个触点,使用时插在卡座上,典型的如手机卡以及以前的公用电话卡.非接触式智能卡没有触点,卡上也没有电源,通过读卡器产生的电磁场获得能量并与读写器交换信息.由于非接触式智能卡的无源和免接触特性,卡的使用寿命和安全性大大提高,目前应用越来越广泛. 根据安全等级,智能卡可分为存储器卡.逻辑加密卡和CPU卡.存储器卡就像一个无人看守且

数据结构基本概念和算法分析

一.数据结构基本概念 1. 数据:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称. 2. 数据元素:数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理.一个数据元素可由若干个数据项组成.数据项是数据的不可分割的最小单位. 3. 数据对象:数据对象是性质相同的数据元素的集合,是数据的一个子集,如整型数据对象. 4. 数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合.根据数据元素之间关系的不同特性,通常有下列4类

数据结构(四十一)排序的基本概念与分类

一.排序的基本概念 假设含有n个记录的序列为{r1,r2,...,rn},其相应的关键字分别为{k1,k2,...,kn},需确定1,2,...,n的一种排列p1,p2,...,pn,使其相应的关键字满足kp1≤kp2≤...≤kpn非递减(或非递增)关系,及时地序列称为一个按关键字有序的序列{rp1,rp2,...,rpn},这样的操作就称为排序. 二.排序的分类 1.稳定排序与不稳定排序 稳定排序:对任意一组数据元素序列,使用某种排序算法对它进行按照关键字的排序,若相同关键字的前后位置关系在

数据结构基础概念

1.数据的特点:可以输入到计算机,可以被计算机程序处理 2.数据是一个抽象的概念,将其进行分类后得到程序设计语言中的类型.如:int float char等等 3.数据元素-组成数据的基本单位,数据项:一个数据元素由若干数据项组成 4.数据对象 -性质相同的数据元素的集合 5.数据元素之间不是独立的,存在特定的关系,这些关系即结构 6.数据结构指数据对象中数据元素之间的关系,编写一个"好"的程序之前,必须分析待处理问题中各个对象的特性,以及对象之间的关系 7.逻辑结构 集合结构--数据

一、分布式存储系统概念与分类

分布式存储系统概念: 大量普通PC服务器通过互联网,对外作为一个整体存储服务. 特性:可扩展(随着集群的增加,系统的性能呈线性增长); 低成本(系统的自动容错.自动均衡机制使其可以构建在普通的PC上); 高性能(针对单台服务器还是整个集群,都要求系统具备高性能): 易用(提供易用的接口,具备完善的监控.运维工具,能方便地与其他系统集成). 分类:

数据结构基本概念及算法和算法分析 -- 引自《新编数据结构习题与解析》(李春葆等著)

本文引自<新编数据结构习题与解析>(李春葆等著)第1章. 1. 数据结构的基本概念 1.1 数据 数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称.例如,整数.实数和字符串都是数据. 1.2 数据元素 数据元素也称为节点,是表示数据的基本单元,在计算机程序中通常作为一个整体进行考虑和处理. 1.3 数据项 数据项是数据的最小单位.数据元素可以由若干个数据项组成.例如,学生记录就是一个数据元素,它由学号.姓名.性别等数据项组成. 1.4 数据对象

数据结构基本概念及术语理解(C语言版-严蔚敏教材)

-------------------------------------------- 基本概念和术语 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 数据:是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称