数据结构第一章绪论笔记

1.基本术语概念

数据是能输入计算机且能被计算机处理的各种符号的集合 。

数据元素是数据的基本单位 ,在计算机程序中通常作为一个整体进行考虑和处理(简称元素、记录、结点或顶点)。

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

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

数据结构是指相互之间存在一种或多种的特定关系的数据元素集合,或者是带结构的数据元素的集合。

数据结构包括逻辑结构、存储结构(物理结构)和数据的操作(数据的运算和处理)。

逻辑结构与数据的存储无关,独立于计算机。逻辑结构是数据结构的抽象 ,存储结构是数据结构的实现。

逻辑结构按第一种分法可分为线性结构(如:线性表、栈、队列、串)和非线性结构(如:树、图)。

通常逻辑结构分为四种类型:

(1)集合:集合中元素的关系极为松散,关系为“同属于一个集合”。

(2)线性结构:线性结构是数据元素中具有线性关系的数据结构 ,线性结构中的节点存在“一对一”的关系 ,开始节点和终端节点都是唯一的,除开始节点和终端节点外,每一个节点有且仅有一个前驱节点和一个后续节点,开始节点仅有一个后续节点 ,终端节点仅有一个前驱节点。整数序列、字母表都是线性结构 。

(3)树结构:树结构是数据元素之间具有层次关系的一种非线性结构,树结构中的节点存在“一对多”的关系 。除根节点外,每个节点有且仅有一个前驱节点,所有节点可以有零个或多个后继节点。 

(4)图形结构:图形结构也是一种非线性结构,图形结构中的节点存在“多对多 ”的关系 ,所有节点都可以有多个前驱节点和后继节点 。

存储结构也分为四种类型:

(1)顺序存储结构:用一组连续的存储单位一次存储数据元素 ,数据元素之间的逻辑关系由元素的存储位置来表示。(C语言中用数组来实现顺序存储结构)

(2)链式存储结构:用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针表示。(C语言中用指针来实现链式存储结构)链式存储结构的特点:存储完自己之后并存储下一个的地址。

(3)索引存储结构:存储结点信息的同时 ,还建立附加的索引表(目录)

(4)散列存储结构:根据结点的关键字直接计算出该结点的存储地址。

数据类型是一组性质相同的值的集合以及定义这个值集合上的一组操作的总称。
数据类型=值的集合+值集合上的一组操作 

抽象数据类型是指一个数学模型以及定义在此数学模型上的一组操作。

抽象数据类型的定义格式如下 :

ADT(抽象数据类型:Abstract,DateType)  抽象数据类型名{
                    数据对象:<数据对象的定义 >
                    数据关系:<数据关系的定义>
                    基本操作:<基本操作的定义>-->定义格式:
              }
ADT  抽象数据类型名                 基本操作名(参数表)
                                                                   初始条件:<初始条件描述>
                                                                   操作结果:<操作结果描述>

2.算法

算法是有穷规则的集合,其规则确定一个解决某一特定类型问题的指令序列,其中每一条指令表示计算机的一个或多个操作。

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

算法设计的四个基本目标:正确性、健壮性、高效性和可读性 。

算法的时间复杂度是指算法的执行时间随问题规模的变化而变化的趋势,反映算法执行时间的长短。算法的执行时间T(n)=Σ指令序列(ⅰ)的执行次数ⅹ指令序列(ⅰ)的执行时间 

计算算法的时间复杂度的定理 :

                                                      

如:若算法执行时间是常数集,不依赖数据量的大小,则时间复杂度为O(1);若算法的执行时间与数据量为线性关系,则时间复杂度为O(n);对数级、平方级、立方级、指数级的时间复杂度分别为O(log2 n)、O(n^2)、O(n^3)、O(2^n)。这些函数按数量级递增排列具有下列关系:

O(1)<O(log2 n)<O(n)<O(nlog2 n)<O(n^2)<O(n^3)<O(2^n)

算法的空间复杂度是指算法执行时所占用的额外存储空间量随问题规模的变化而变化的趋势 。

执行一个算法所需要的存储空间主要包括以下两个部分:

(1)固定的空间部分 : 主要包括算法的程序指令、常量、变量所占的空间,与所处理问题的规模无关。

(2)可变空间部分:主要包括输入的数据元素占有的空间和程序运行过程中额外的存储空间,与处理问题的规模有关。

补充内容:对于结构类型的变量,用圆点运算符(.)访问结构变量的数据成员。定义为指向结构的指针类型的变量用箭头运算符(->)访问结构变量的数据成员。
               

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值