数据结构学习心得(一)

计算机现在不在局限于数字计算,更多应用于控制,管理及数据处理等非数值计算领域。

这里面涉及到两个问题:信息的表示,信息的处理。

分析待处理问题中的对象的特征及个对象之间存在的关系,这既是数据结构这门课索要研究的问题。

编写解决实际问题的程序的一般过程:

——如何用数据形式描述问题?–即由问题抽象出一个适当的数学模型。

——问题所涉及的数据量大小及数据之间的关系;

——如何在计算机中存储数据及体现数据之间的关系?

——处理问题时需要对数据作何种运算?

——所编写的程序的性能是否良好?

电话号码查询系统:本问题是一种典型的表格问题,数据与数据成简单的线性关系

磁盘目录文件系统:是一种典型的树型结构问题,数据与数据成一对多的关系,是一种典型的非线性关系结构—树型结构

交通网络图:从一个地方到另一个地方可以有多条路径。本问题是一种典型的网状结构问题,数据与数据成多对多的关系,是一种非线性关系结构。

数据结构中的专业术语(概念)

数据(Data):客观事物的符号表示,在计算机科学种是所有能输入到计算机中并被计算机程序处理的符号的总称。

数据元素(Data Element):数据的基本单位,在程序中通常作为一个整体来进行考虑和处理。一个数据元素由若干个数据项组成。

数据对象:性质相同的数据元素的集合,是数据的一个子集。

什么是数据结构??有哪几种?

数据结构:相互之间(存在)一定联系(关系)的数据元素的集合。元素之间的相互联系(关系)成为逻辑结构。数据元素之间的路基结构有四种基本类型:1.集合(结构中的元素除了“同属于一个集合”外,没有其他关系)2.线性结构(结构中的数据元素存在一对一的关系)3.树型结构(存在一对多的关系)4.图状结构或网状结构(多对多的关系)

数据元素之间的关系可以是元素之间代表某种含义的自然关系,也可以是为处理问题方便而人为定义的关系,这种自然或人为定义的“关系”称为数据元素之间的逻辑关系,相应的结构称为逻辑结构。

数据结构定义那肯定包括两点:数据元素和其之间的关系。Data-Structure(D,S)

数据结构在计算机内存中的存储包括数据元素的存储和元素之间的关系的表示。存储数据没什么说的,数据元素之间的关系的表示的不同,得到不同的存储结构。

元素之间的关系在计算机中有两种不同的表示方法:顺序表示和非顺序表示。由此得出两种不同的存储结构:顺序存储结构和链式存储结构

顺序存储结构:用数据元素在存储器中的相对位置来表示数据元素之间的逻辑结构(关系)。

链式存储结构:在每一个数据元素中增加一个存放另一个元素地址的指针(pointer),用该指针来表示数据元素之间的逻辑结构(关系)。

顺序结构:数据元素存放的地址是连续的;

链式结构:数据元素存放的地址是否连续没有要求;

数据的逻辑结构和物理结构是密不可分的两个方面。一个算法的设计取决于所选定的逻辑结构,而算法实现依赖于所采用的存储结构

c语言中,用一维数组表示顺序存储结构;用结构体类型表示链式存储结构。

数据结构的三个组成部分:

逻辑结构:数据元素之间逻辑关系的描述D_S=(D,S)

存储结构:数据元素在计算机中的存储及其逻辑结构的表现称为数据的存储结构或物理结构。

数据操作:对数据要进行的运算。


数据结构的运算包括哪些???


ADT(抽象数据类型Abstract Data Type)=(D,S,P),D是数据对象,S是D上的关系集,P是对D的基本操作集。

算法的五个特性:有穷性,确定性,可行性,输入,输出。算法:对特定问题求解方法(步骤)的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作。

算法和程序是两个不同的概念。一个计算机程序时对一个算法使用某种程序设计语言的具体实现。算法必须可终止 意味着不是所有的计算机程序都是算法。

时间复杂度:常用最深层循环内的语句中的原操作的执行频度(重复执行的次数)来表示。表示时间复杂度的阶有:O(1)常量 时间阶,O(n)线性时间阶,O(log n)对数时间阶,O(n log n)线性对数时间阶O(n^k)k>=2,K次方时间阶

下面六中计算算法时间的多项式是最常用的,其中关系为:O(1)<O(log n)<O(n)<O(n log n)<O(n^2)<O(n^3)

指数时间的关系为:O(2^n)<O(n!)<O(n^n)

空间复杂度:该存储空间一般包括三个方面:指令常熟变量所占用的存储空间;输入数据所占用的存储空间;辅助(存储)空间;

空间复杂度指的是辅助空间


版权声明:本文为didi520原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/didi520/p/4165516.html