预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共18页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

公共基础知识 第一章数据结构与算法 (P1—P38)1.1算法1.1.1算法的基本概念(P1—P4) 所谓算法是指解题方案的准确完整的描述。 1.算法的基本特征 (1)可行性(2)确定性(3)有穷性(4)拥有够的情报 2.算法的基本要素 一个算法通常由两种基本要素组成:一是对数据对象的运算和操作,二是算法的控制结构。 (1)算法中对数据的运算和操作(插入、删除) (2)算法的控制结构 一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成。 1.1.2算法复杂度(P4—P6) 算法的复杂度主要包括时间复杂度和空间复杂度。 1.算法的时间复杂度 所谓算法的时间复杂度,是指执行算法所需要的计算工作量。 可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。 2.算法的空间复杂度 一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。 1.2数据结构的基本概念 数据结构,主要研究和讨论以下三个方面的问题: ①数据的逻辑结构; ②数据的存储结构; ③对各种数据结构进行的运算。(插入、删除) 主要目的是为了提高数据处理的效率。所谓提高数据处理的效率,主要包括两个方面:一是提高数据处理的速度,(时间复杂度)二是尽量节省在数据处理过程中所占用的计算机存储空间。(空间复杂度) 1.2.1什么是数据结构(P6—P11) 1.数据的逻辑结构 所谓数据的逻辑结构,是指反映数据元素之间逻辑关系的数据结构。 2.数据的存储结构 数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称为数据的物理结构) 一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构。而采用不同的存储结构,其数据处理的效率是不同的。 1.2.3线性结构与非线性结构(P12) 一般将数据分为两大类型:线性结构与非线性结构。 线性结构又称线性表 如果一个数据结构不是线性结构,则称之为非线性结构。 1.3线性表及其顺序存储结构 1.3.1线性表的基本概念(P12—P13) 线性表是由n(n≥0)个数据元素a1,a2,…,an组成的一个有限序列,表中的每一个数据元素,除了第一个外,有且只有一个前件,除了最后一个外,有且只有一个后件。即线性表或是一个空表,或可以表示为。 (a1,a2,…,ai,…,an) 非空线性表有如下一些结构特征: ①有且只有一个根结点a1,它无前件; ②有且只有一个终结点an,它无后件; ③除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。 1.3.2线性表的顺序存储结构(P13—P14) 在计算机中存放线性表,一种最简单的方法是顺序存储,也称为顺序分配。 线性表的顺序存储结构具有以下两个基本特点: ①线性表中所有元素据所占的存储空间是连续的; ②线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 假设线性表中的第一个数据元素的存储地址为ADR(a1),每一个数据元素占K个字节,则线性表中第i个元素ai在计算机存储空间中的存储地址为 ADR(a1)=ADR(a1)+(i-1)K 1.3.3顺序表的插入运算(P14—P15) 在平均情况下,要在线性表中插入一个新元素,需要移动表中一半的元素。因此,在线性表顺序存储的情况下,要插入一个新元素,其效率是很低的。 1.3.4顺序表的删除运算(P15—P16) 在平均情况下,要在线性表中删除一个元素,需要移动表中表中一半的元素。因此,在线性表顺序存储的情况下,要删除一个元素,其效率也是很低的。 由线性表在存储结构下的插入与删除运算可以看出,线性表的顺序存储结构对于小线性表或者其中元素不常变动的线性表来说是合适的,因为顺序存储的结构比较简单。但这种顺序存储的方式对于元素经常需要变动的大线性表就不太合适了,因为插入删除的效率比较低。 1.4栈和队列 1.4.1栈及其基本运算(P16—P18) 1.什么是栈 栈是限定在一端进行插入与删除的另一端称为栈底。即栈是按照“先进后出”(FILO)或“后进先出”(LIFO)的原则组织数据的,因此,栈也被称为“先进后出”表或“后进先出”表。由此可以看出,栈具有记忆作用。 2.栈的顺序存储及其运算(采用顺序存储结构的栈称为顺序栈) 栈的基本运算有三种:入栈、退栈与读栈顶元素。 (1)入栈运算(2)退栈运算(3)读栈顶元素 1.4.2队列及其基本运算(P18—P20) 1.什么是队列 队列(queue)是指允许在一端进行插入、而在另一端进行删除的线性表。允许插入的一端称为队尾,通常用一个称为尾指针(rear)的指针指向队尾元素,一端称为排头(也称为队头)通常也用一个排头指针(front)指向排头元素的前一个位置。 队列