写在学习之初
2020年,刚开始便显露出不同寻常的一面,疫情汹涌,这个春节如此特别,待在家里没事干的话,就努力充实自己吧。这年头病毒都在进化,人不学习就要淘汰。致自己以及所有的朋友们。
前言
计算机的应用:不仅局限于科学计算,还应用于控制、管理、数据处理等非数值计算领域,因此涉及两个问题:信息的表示,信息的处理。
信息的表示和组织又关系到处理信息的程序的效率。随着应用问题的不断复杂,导致信息量剧增与信息范围拓宽,使得许多系统程序与应用程序规模很大,结构复杂,因此必须分析处理问题过程中对象的特征及个对象的关系。
数据结构:研究非数值计算的程序设计问题中计算机的操作对象以及它们之间关系和操作的学科。
计算机处理问题的一般步骤:
1.如何用数据形式描述问题(选取数学模型)
2.问题涉及的数据量大小及数据量之间关系
3.如何在计算机中存储数据及数据间的关系
4.处理问题要对数据做什么处理
5.程序的性能是否良好
基本概念
数据:客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素:数据的基本单位,在程序中作为一个整体来考虑和处理。一个数据元素由若干个数据项组成,数据项是数据的不可分割的最小单位,数据项是对客观事物的某一方面特性的数据描述。
数据对象:性质相同的数据元素的集合,是数据的一个子集。
数据结构:相互之间具有一定关系的数据元素的集合。元素之间的相互联系叫逻辑结构。有四种:
1.集合:除了同属一个集合外没有其他关系
2.线性结构:一对一的关系(电话簿姓名电话号码之间)
3.树形结构:一对多的关系(文件夹存储,根目录 子目录之间)
4.图状或网状结构:多对多的关系(交通路线图)
数据结构的形式
二元组:Data-Structure = (D,S)
D是数据元素的有限集,S是D上关系的有限集。
数据元素之间的关系叫逻辑关系,相应的结构叫逻辑结构
数据结构的存储
数据元素的存储和元素之间关系的存储
元素之间关系在计算机中两种不同的表示:顺序表示和非顺序表示。由此得出两种存储结构:
顺序存储结构:用数据元素在存储器中的相对位置来表示数据元素之间的逻辑关系。(存储地址连续)
链式存储结构:在每个数据元素中增加一个存放另一个元素地址的指针,用该指针表示元素之间的逻辑关系。(存储地址不一定连续)
数据结构的组成
逻辑结构:数据元素间逻辑关系的描述 D_S=(D,S);
存储结构:数据元素在计算机中的存储及其逻辑关系,又称物理结构
数据操作:对数据的运算
数据的逻辑结构与物理结构是密不可分的两方面。算法的设计取决于逻辑结构,算法的实现依赖于数据的物理结构。
数据类型:
定义:一个值的集合和定义在该值集上的一组操作的总称。
1.数据类型是和数据结构密切相关的一个概念。在c语言中的数据类型有基本类型和构造类型。
2.数据结构不同于数据类型,也不同于数据对象,它不仅要描述数据类型的数据对象,而且要描述数据对象各元素之间的关系
数据结构的运算(8种)
建立Create 消除Destroy 删除Delete 插入Insert
访问Acress 修改Modify 排序Sort 查找Search
抽象数据类型(Abstract Data Type = ADT)
一个数学模型以及定义在该模型上的一组操作,仅是一组逻辑特性的描述,与其在计算机内的表示和实现无关。因此无论ADT内部结构如何变化,只要其数学特性,都不影响外部使用。
定义为一个三元组:ADT=(D,S,P),D是数据对象,S是D上的关系集,P是对D的基本操作集。
一般定义形式:
ADT<抽象数据类型名> {
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
数据操作:<基本操作名>(<参数表>)
初始条件:<初始条件描述>
操作结果:<操作结果描述>
} ADT<抽象数据类型名>
-------------------------------------------------------------------------------------------------
看完点个赞吧,给别人点赞,会让自己觉得自己是一个善良的人。
关注一下,让自己觉得自己是一个友善的人,开放包容的人,人生会不经意间美妙一点点。
我的收获期待与你分享,希望一同成长!