数据结构

本文介绍了数据结构的基础概念,包括数据、数据元素、数据对象和数据结构的定义。数据结构主要包括逻辑结构、存储结构和运算三方面,其中逻辑结构分为线性结构和非线性结构。此外,文章还探讨了数据的四种存储结构:顺序、链式、索引和散列。算法的描述和分析中强调了算法的正确性、时间复杂度和空间复杂度的重要性。线性表作为线性结构的例子,其逻辑定义和基本运算如插入、删除等也被详细阐述。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思维导图

在这里插入图片描述

第1章 概述

1.2基本概念和常用术语

1、数据(data):
是描述客观事物的数、字符以及能输入计算机中并被计算机处理的符号的集合。
2、数据元素(data element):
也称为结点,是数据的基本单位,可以由若干个数据项组成。数据项是具有独立含义的最小标识单位。
3、数据对象(data object):
是具有相同性质的数据元素的集合,是数据的一个子集。

数据结构包含的内容

4、数据结构(data structure):
是带有结构的数据元素的集合。包括数据的逻辑结构、数据的存储结构及数据的运算三个方面。结构指的是数据元素之间的相互关系,即数据的组织形式,结构中的数据元素成为结点。

数据结构包括三个方面:数据的逻辑结构存储结构运算
数据的逻辑结构分为线性结构非线性结构
数据的存储结构分为顺序存储方法链接存储方法索引存储方法散列存储方法
数据的运算是定义在数据的逻辑结构上的,每种逻辑结构都有一个运算的集合,最常用的运算有:检索、插入、删除、更新、排序等。

5、数据的逻辑结构:
是数据元素之间的逻辑(或抽象)关系,与数据元素的存储结构无关,独立于计算机。数据的逻辑结构分为线性结构和非线性结构两大类。
线性结构:数据元素(结点)之间存在着一对一的关系,且结构中仅有一个开始结点和一个终端结点,其余结点都是仅有一个直接前趋和一个字节后继。如线性表、栈和队列。
非线性结构:数据元素之间存在着一对多或多对多的关系,即一个结点可能有多个直接前趋或多个直接后继。该结构包括树形结构、图形结构和网状结构等。

6、数据的存储结构:
是数据在计算机中存储表示(映像),亦称为数据的物理结构。它包括数据元素和关系的表示,是依赖于计算机语言的。数据的存储结构有以下四种:
①顺序存储结构: 把逻辑上相邻的结点存储在物理位置上也相邻的连续存储单元里。顺序存储主要应用于线性的数据结构,但非线性的数据结构也可通过某种线性化的方法来实现顺序存储。
②链式存储结构: 用一组不一定连续的存储单元存储逻辑上相邻的元素,元素间的逻辑关系是由附加的指针域表示的,它通常是借助于程序设计语言中的指针来描述的。
③索引存储结构: 在存储元素信息的同时,还建立附加的索引表。
④散列存储结构: 根据元素的关键字直接计算出该元素的存储地址。

7、数据的运算:
是定义在数据的逻辑结构上的,每种逻辑结构都有一个运算的集合,最常用的运算有:检索、插入、删除、更新、排序等。

8、数据类型(data type):
是和数据结构密切相关的一个概念。所谓数据类型,是一个值的集合和定义在这个值上的一组操作的总称。
数据类型分为两类:一类是其值不可分解的称为原子类型(或非结构类型),例如C语言中的基本类型(整型、实型、字符型和枚举类型)以及指针类型和空类型等简单类型;另一类则是结构类型,其值可由若干个分量(或成分)按某种结构组成,它的分量可以是非结构型的,也可以是结构型的,例如C语言中的数组、结构等类型。

9、抽象数据类型(Abstract Data Type,ADT):
是20世纪70年代提出的一种新概念,它是抽象数据组织和与之相关的操作。一个ADT可以看作是定义了相关操作运算的一个数学模型。例如,集合与集合的并、交、差等运算就可以定义为抽象的数据类型。
抽象数据类型可以看作是描述问题的模型,它独立于具体实现。它的特点是将数据定义和数据操作封装在一起,使得用户程序只能通过在ADT中定义的某种操作来访问其中数据,从而实现信息的隐藏性。这种抽象数据类型类似于C++中的类。

总结

数据结构{ 数据的逻辑结构(抽象){ 线性结构非线性结构数据的存储结构(物理结构){ 顺序存储方法链接存储方法索引存储方法散列存储方法数据的运算{ 检索插入删除更新排序等数据结构\begin{cases}数据的逻辑结构(抽象)\begin{cases}线性结构\\ 非线性结构\end{cases}\\ 数据的存储结构(物理结构)\begin{cases}顺序存储方法\\ 链接存储方法\\ 索引存储方法\\ 散列存储方法\end{cases}\\ 数据的运算\begin{cases}检索\\ 插入\\ 删除\\ 更新\\ 排序等\end{cases}\end{cases}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值