数据结构 第一章

数据结构的定义

(1)分析问题,确定数据类型。
(2)设计相应算法。
(3)编写程序,运行并调试程序,直至得到正确的结果。
数据是描述客观事物的数和字符的集合。
数据项是具有独立含义的数据的最小单位,也成为字段或域。
数据对象是指性质相同的数据元素的集合,他是数据的一个子集。
数据结构是指所有数据元素以及数据元素之间的关系,可以看作是相互之间存在着某种特定关系的数据元素的集合。

数据结构通常包括以下几个方面

(1)数据的逻辑结构:由数据元素之间的逻辑关系构成。
(2)数据的存储结构:数据元素及其关系在计算机存储器中的存储表示,也称为数据的物理结构。
(3)数据的运算:施加在该数据上的操作。
**逻辑结构**
数据的逻辑结构是从数据元素的逻辑关系上描述数据,是指数据元素之间的逻辑关系的整体,通常是从求解问题中提炼出来的。

逻辑结构的类型

(1)集合
(2)线性结构
(3)树形结构
(4)图形结构
树形结构和图形结构统称为非线性结构。
**存储结构**
数据逻辑结构在计算机存储器中的存储表示称为数据的存储结构,也就是逻辑结构在计算机中的存储实现。
**顺序存储结构**
顺序存储结构是采用一组连续的存储单元存放所有的数据元素,也就是说,所有数据元素在存储器中占有一整块的存储空间,而且两个逻辑上相邻的元素在存储器中的存储也相邻。因此,数据元素之间的逻辑关系由存储单元地址间的关系隐含表示,即顺序存储结构将数据的逻辑结构直接映射到存储结构。
**链式存储结构**
在链式存储结构中,每个逻辑元素用一个内存节点存储,每个结点是单独分配的,所有的结点的地址不一定是连续的,所以无须占用一整块存储空间。为了表示元素之间的逻辑关系,给每个结点附加指针域,用于存放相邻结点的存储地址,也就是通过指针域将所有结点链接起来,这就是链式存储结构名称的由来。
**索引存储结构**
索引存储结构是指在存储数据元素信息的同时还建立附加的索引表。存储所有数据元素信息的表称为主数据表,其中每个数据元素有一个关键字和对应的存储地址。
**哈希存储结构**
哈希存储结构的基本思想是根据元素的关键字通过哈希函数直接计算出一个值,并将这个值作为该元素的存储地址。
**数据运算**
数据运算是指对数据实施的操作。每种数据结构都有一组相应的运算,最常用的运算有检索,插入,删除,更新和排序等。数据运算最终需要在对应的存储结构上用算法实现,所以数据运算分为运算定义和运算实现两个层面。
*

数据类型和抽象数据类型*

数据类型
所以,数据类型是一组性质相同的值的集合和定义在此集合上的一组操作的总称,是某种程序设计语言中已实现的数据结构。
c/c++语言中常用的数据类型
基本数据类型有 int型,bool型,float型,double型和char型。int型可以有3个修饰符,即short ,long,unsigned。
动态存储空间分配方式
所谓动态存储空间分配方式是指在程序运行中期间根据需要动态地分配存储空间的方式。c/c++语言提供了一套机制可以在执行时动态的分配存储空间,如malloc()/free()函数对。即使用malloc()函数为一个指针变量分配一片连续的空间,当不在需要时使用free()函数释放p所指向的空间。
抽象数据类型
抽象数据类型指的是用户进行软件系统设计时从问题的数学模型中抽象出来的逻辑数据结构上的运算,而不考虑计算机的具体存储结构和运算的具体实现算法。抽象数据类型中的数据对象和数据运算的声明与数据对象的表示和数据运算的具体实现相互分离。

算法及其描述

什么是算法
算法是对特定问题求解步骤的一种描述,他的指令的有限序列。
算法的5个重要特征。
(1)有穷性(2)确定性(3)可行性(4)有输入(5)有输出。
算法的设计的目标
(1)正确性(2)可使用性(3)可读性(4)健壮性(5)高效率与低存储量需求。

算法分析

算法分析就是分析算法占用计算机资源的多少。而计算机资源主要是cpu时间和内存空间,分析算法占用cpu时间的多少称为时间性能分析,分析算法占用时间多少称为时间性能分析,分析算法占用内存空间的多少称为空间性能分析。
两种算法时间性能分析方法
(1)事后统计法 (2)事前估算法
算法时间复杂度
算法的最好,最坏和平均时间复杂度。
算法空间复杂度分析。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

侧耳倾听QAQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值