数据结构分为哪两类,数据结构学什么
Yyds干货库存
1.数据结构的研究内容。通常用计算机解决一个问题的步骤:把一个具体的问题抽象成一个数据模型,根据这个数据模型设计一个算法,根据算法用某种语言编程、调试、运行。
将具体问题抽象为数据模型的本质:分析问题,提取操作对象,找出操作对象之间的关系,用数学语言描述——数据结构。
2.数据、数据元素、数据项、数据对象1。数据是可以输入计算机并由计算机处理的各种符号的载体。它是计算机能够识别的客观事物的符号表示。存储和处理的数据可以分为数值数据(整数、实数等。)和非数字数据(文字、图像、图表、声音等)。) 2.数据元素是数据的基本单位,通常在计算机程序中作为一个整体来考虑和处理。它也被简称为元素或记录。一个数据元素可以由几个数据项组成。
3.数据项是数据元素的最小不可分单位。
4.一组具有相同属性的数据元素(数据对象)例如:一组正整数数据对象n={1,2,3,4,5.}
3.数据结构的内容和两个层次的数据元素不是孤立的,而是有一定的联系。数据元素之间的关系称为结构。指的是一组相互之间具有一种或多种特定关系的数据元素。换句话说,数据结构是一组结构化的数据元素。数据结构包括以下三个方面:
元素之间的逻辑关系,也称为逻辑结构。数据及其关系在计算机内存中的表示(也称为映像)称为数据的物理结构或数据的存储结构。数据操作和实现,即可以应用于数据元素的操作以及这些操作在相应存储结构上的实现。1.逻辑结构描述了数据结构元素之间的逻辑关系。它与数据的存储无关,独立于计算机。它是从具体问题中抽象出来的数据模型。(一)逻辑结构的分类方法1:线性结构,非线性结构
线性结构:只有一个开始和一个结束节点,所有节点最多有一个直接前任和一个直接继任者。例如:线性表、堆栈、队列、字符串
非线性结构:一个节点可能有多个直接前任和直接继任者。例如:树、图形
方法二:集合结构、线性结构、树形结构、图形结构(网状结构)。
结构:结构中的数据元素除了属于同一个集合之外,没有其他关系。
线性结构:结构中的数据元素之间存在一对一的线性关系。
树形结构:结构中的数据元素之间是一对多的层次关系。
图形或网络结构:结构中的数据元素之间存在多对多的任意关系。
2.物理结构(存储结构)计算机内存中数据元素的结构(存储模式)及其关系。是数据结构在计算机中的表示。(1)物理结构的类型顺序存储结构(emphasis)链式存储结构(emphasis)索引存储结构哈希存储结构顺序存储结构:数据元素由一组连续的存储单元顺序存储,数据元素之间的逻辑关系用元素的存储位置来表示。在C语言中,顺序存储结构是通过数组来实现的。
链式存储结构:用一组任意的存储单元来存储数据元素,数据元素之间的逻辑关系用指针来表示。在C语言中,指针用于实现链式存储结构。
索引结构:在存储节点信息的同时,还建立了附加的索引表。指数
哈希结构:根据节点的关键字直接计算出节点的存储地址。
3.逻辑结构和存储结构的关系。存储结构是逻辑关系的形象,也是元素本身的形象。逻辑是数据结构的抽象,存储结构是数据结构的实现。当它们组合在一起时,数据元素之间的结构关系就建立了。四。数据类型和抽象数据类型(ADT)(1)基本概念数据类型:C语言提供了int、char、float、double、array、structure、common body、enumeration等基本数据类型以及指针、空(void)类型。用户也可以使用typedef来定义自己的数据类型。数据集合=值对值集合的一组操作
数据的作用:限制变量或常数的取值范围以及变量或常数的运算。
抽象数据类型:指一个数学模型和在这个数学模型上定义的一组运算。用户定义的、来自问题的抽象数据模型(逻辑结构)。它还包括一组在数据模型上定义的抽象操作(相关操作)。与计算机中的具体存储结构和操作的具体实现算法无关。
抽象数据类型的定义格式:
ADT抽象数据类型名称{
数据:数据对象的定义
数据:数据关系的定义。
基本操作:基本操作的定义。
}ADT抽象数据类型名称
//其中数据对象和数据关系的定义用伪代码描述。基本操作定义格式:
基本操作名称(参数表)
初始条件:初始条件的描述
运算:运算结果描述参数表:赋值参数,只为运算提供输入值。以开始的引用不仅会提供输入值,还会返回运算结果。
初始条件:描述数据结构和参数在操作执行前应该满足的条件,如果不满足。操作失败,并返回相应错误消息。如果初始条件为空,则忽略该条件。
操作:说明数据结构的变化以及正常操作后应该返回的结果。
(2)抽象数据类型的定义:Circle和Circle的定义{
运算:D={r,x,yr,x,y都是实数}
数据:R={ r,x,y r为半径,x,y为中心坐标}
基本操作:
圆(C,r,x,y)
操作:构造一个圆。
双倍面积(C)
初始条件:圆已经存在。
操作:计算面积。
双圆周(C)
初始条件:圆已经存在。
操作:计算周长。
.
}ADT圈复形的定义
D={r1,r2r1,r2都是实数}
R={ r1,r2 r1是实数,r2是虚数}
赋值(Z,v1,v2)
初始条件:一个空的复数Z已经存在。
操作:构造复数Z、R1、R2,分别赋参数V1、V2的值。
销毁(Z)
初始条件:复数C已经存在
操作条件:复数c被破坏。
GetReal(Z,realPart)
初始条件:复数已经存在。
操作:使用realPart返回复数z的实数值。
GetImag(Z,ImagPart)
初始条件:复数已经存在。
运算:用ImagPart返回复数z的虚部。
.
}ADT Complex持续更新【数据结构】系列!如有需要,请到光头程序员袁主页!
,
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。