【数据结构导论】考试笔记总结(一)

前言

编写本篇博客主要是想把自己课堂学的东西,进行总结,无论是学习方法还是课堂知识进行详细的记录????下来,可以叫自己更好的日后进行知识梳理,弥补自己一些短板,


第一章概论

1、引言

【数据结构导论】考试笔记总结(一)

一、数据结构

是指一组相互之间存在一种或多种特定关系的数据的组织方式和它们在计算机内的存储方式,以及定义在该组数据上的一组操作。

二、数据、数据元素和数据项

(1)数据:所有被计算机存储、处理的对象。
(2)数据元素:数据的基本单位,在程序中作为一个整体而加以考虑和处理。数据元素是运算的基本单位,通常具有完整确定的实际意义。数据元素常常又简称为元素。
(3)数据项:一般情况下,数据元素由数据项组成。在数据库中数据项又被称为字段或域。
它是数据的不可分割的最小标示单位

从宏观上看:
数据、数据元素和数据项实际上反映了数据组织的三个层次,数据可由若干个数据元素组成,而数据元素又可由若干个数据项组成。
 
数据结构
 
是相互之间存在一种或多种特定关系的数据元素的集合,它包括数据的逻辑结构、数据的存储结构和数据的基本运算。

三、数据的逻辑结构

1.数据的逻辑结构是指数据元素之间的逻辑关系。
所谓逻辑关系是指数据元素之间的关联方式或“领接关系”。
2.根据数据元素之间的关系,由四类基本的逻辑结构:
【数据结构导论】考试笔记总结(一)

  • 集合
    (1)集合中任意两个结点之间都没有邻接关系,组织形式松散。(查找表)
  • 线性结构
    (2)线性结构中结点按逻辑关系依次排列形成一条“链”,结点之间一个一个依次相邻接。
  • 树形
    (3)树形结构具有分支、层次特性,其形态像自然界中的树,上层的结点可以和下层多个结点项邻接,但下层结点只能和上层的一个结点相领接。

  • (4)图结构最复杂,其中任何两个结点都可以相领接。

四数据的存储结构

1.数据的逻辑结构在计算机中的实现称为数据的存储结构(或物理结构)。一般情况下,一个存储结构包括以下两个部分:
(1)存储数据的元素;
(2)数据元素之间的关联方式。
2.表示数据元素之间的关联方式主要有:顺序存储方式和链式存储方式
(1)顺序存储方式是指所有存储结点存放在一个连续的存储区里。利用结点在存储器中的相对位置来表示数据元素之间的逻辑关系。
(2)链式存储方式是指每个存储结点除了含有一个数据元素外,还包含指针,每个指针指向一个与本结点有逻辑关系的结点,用指针表示数据元素之间的逻辑关系。
除了上述两种存储方式之外,还有索引存储方式和散列存储方式
3.一种逻辑结构可以采用一种或几种存储方式来表达数据元素之间的逻辑关系,相应的存储结构称为给定逻辑结构的存储实现或存储映像。

五、运算

1.建立、查找、读取、插入、和删除
2.线性表、栈和队列中的元素具有相同的逻辑结构 – 线性结构

六、算法分析:

评价算法好坏的因素包括以下几个方面:

  • 正确性
    能正确地实现预定的功能,满足具体问题的需要。
  • 易读性
    易于阅读,理解和交流,便于调试,修改和扩充
  • 健壮性
    即使输入非法数据,算法也能适当地做出反应或进行处理,不会产生预料不到的运行结果。
  • 时空性
    一个算法的时空性是指该算法的时间性能(或时间效率)和空间性能(或空间效率),前者是算法包含的计算量,后者是算法需要的存储量。

七、时间复杂度

1.时间复杂度常见的阶数
(1)常数阶O(1)
即算法的时间复杂度与输入规模n无关。
(2)对数阶 O(log2n);
(3) 线性阶O(n)
(4) 多项式阶O(n^C),
c为大于1的正整数,常见的多项式阶有O(n^2) 和 O(n^3)
(5)指数阶O(C^n)
c为大于1的正整数,常见的指数阶有O(2^n)
通常认为,时间复杂度具有指数阶的算法是实际不可计算的,而阶数低于平方阶的算法是高效率的。
2.最坏的时间复杂度和平均时间复杂度
最坏时间复杂度是指,对相同输入数据量的不同输入数据,算法时间用量的最大值。
平均时间复杂度是指,对所有相同输入数据量的各种不同输入数据,算法时间用量的平均值。
3.为了比较不同量级时间复杂度的差异,下表为不同时间复杂度阶数f(n)在每秒20亿个程序步的计算机上运行所需要的时间。
【数据结构导论】考试笔记总结(一)

八、空间复杂度

只需要分析辅助变量所占用的空间
 
第二章线性表

2、线性表

一、线性表的基本概念

线性表是一种线性结构。
它是由n(n≥0)个数据元素组成的有穷序列,数据元素又称结点。
结点个数n称为表长。
当n= 0 时,线性表不含任何数据元素,称为空表,记为()。
当n>0时,线性表通常表示成(a1,a2,…an),a1称为起始结点。an为终端结点。
对任意一对向邻结点ai 和ai+1(1≤i<n),ai称为ai+1的直接前驱,ai+1称为ai的直接后继。
基本特征: 线性表中结点具有一对一的关系。
如果结点数不为零,则除起始结点没有直接前驱外,其他每个结点有且仅有一个直接前驱,除终端结点没有直接后继外,其他每个结点有且仅有一个直接后继。

二、线性表顺序存储的类型定义

线性表顺序存储的方法是:将表中的结点依次存放在计算机内存中的一组连续的存储单元中,

数据元素在线性表中的邻接关系决定它们在存储空间中的存储位置,既逻辑结构中相邻的结点其存储位置也相邻。
用顺序存储实现的线性表称为顺序表,一般使用数组来表示顺序表。

三、线性表的基本运算在顺序表上的实现

【数据结构导论】考试笔记总结(一)

  • 删除
    【数据结构导论】考试笔记总结(一)【数据结构导论】考试笔记总结(一)
  • 定位
    【数据结构导论】考试笔记总结(一)
    【数据结构导论】考试笔记总结(一)

四、顺序表实现算法的分析

【数据结构导论】考试笔记总结(一)