数据结构(C++版) 第1章总结

1绪论

    程序设计的实质:将数据存储在计算机的内存中,这项任务称为数据表示;处理数据、设计方案(算法)称为数据处理。

1.1数据结构在程序设计中的作用

    数据结构问题起源于程序设计,计算机不能分析问题并产生问题的解决方案,必须由人分析问题,确定问题的解决方案、编写程序,然后让计算机执行程序最终获得问题的解。

沃思的著名公式:数据结构+算法=程序

1.2本书讨论的主要内容

    计算机能够求解的问题一般可以分为数值问题和非数值问题。本书讨论非数值问题的数据组织和处理,主要内容有如下四点。

1)数据的逻辑结构:线性表、树、图等数据结构,其核心是如何组织待处理的数据以及数据之间的关系。

2)数据的存储结构:如何将线性表、树、图等数据结构存储到计算机的存储器中,其核心是如何有效地存储数据以及数据之间的逻辑关系。

3)算法:如何基于数据的某种存储结构实现插入、删除、查找等基本操作,其核心是如何有效地处理数据。

4)常用数据处理技术:包括查找技术、排序技术、索引技术等。

1.3数据结构的基本概念

    数据表示分为数据的逻辑结构(集合、线性结构、树结构、图结构)与数据的存储结构(顺序存储、链式存储)。

    数据的操作:插入、删除、修改、检索、排序等。

1.3.1 数据结构

      数据元素是由数据项组成的,数据是由数据元素组成的。

数据:所有能输入到计算机中病能被计算机程序识别和处理的符号集合。分为数值数据(整数、实数等)与非数值型数据(文字、声音、图形、图像等)。

数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。

数据项:构成数据元素的不可分割的最小单位。

数据结构:指相互之间存在一定关系的数据元素的集合。

逻辑结构:指数据元素之间逻辑关系的整体。                 面向问题

根据数据元素之间逻辑关系的不同,数据结构分为以下四类:

(1)集合——属于同一个集合

(2)线性结构——一对一

(3)树结构——一对多

(4)图结构——多对多

树结构和图结构也称为非线性结构。

存储结构(物理结构):数据及其逻辑结构在计算机中的表示。有顺序存储结构(特点:占据连续的存储空间;有点:占据存储空间少)和链接式存储结构(优点:灵活)。

                                                        面向计算机

1.3.2抽象数据类型

抽象数据类型:一个数据结构以及定义在该结构上的一组操作总称。

ADT抽象数据类型名

Data

     数据元素之间逻辑关系的定义

Operation

  操作1

       前置条件

       输入

       功能

       输出

       后置条件

  操作2

……

……

操作n

……

endAdt

1.4           算法及算法分析

1.4.1算法及其描述方法

    算法:对特定问题求解步骤的一种描述,是指令的有限序列。

    算法的5个特性:输入、输出、有穷形、确定性、可行性。

    欧几里得算法:

(1)m除以n得到余数r

(2)r等于0,则n为最大公约数,算法结束;否则执行(3

(3)n的值放在m中,将r的值放在n中,重新执行(1

1.4.2算法分析

    算法的时间复杂度:只考察当问题规模充分大时,算法中基本语句的执行次数在渐近意义下的阶,称为算法的渐近时间复杂度,简称时间复杂度。

    算法的时间复杂度:指在算法的执行过程中,需要的辅助空间数量。辅助空间是出算法本身和输入输出数据算占据的空间外,算法历史开辟的存储空间。通常记作:

                           S(n)=O(f(n))

其中,n为问题规模,分析方法与算法的时间复杂度类似。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值