计算机考试公共基础知识(数据结构)

上传人:ji****72 文档编号:56896149 上传时间:2018-10-16 格式:PPT 页数:56 大小:415KB
返回 下载 相关 举报
计算机考试公共基础知识(数据结构)_第1页
第1页 / 共56页
计算机考试公共基础知识(数据结构)_第2页
第2页 / 共56页
计算机考试公共基础知识(数据结构)_第3页
第3页 / 共56页
计算机考试公共基础知识(数据结构)_第4页
第4页 / 共56页
计算机考试公共基础知识(数据结构)_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《计算机考试公共基础知识(数据结构)》由会员分享,可在线阅读,更多相关《计算机考试公共基础知识(数据结构)(56页珍藏版)》请在金锄头文库上搜索。

1、第一章 数据结构与算法,1.1 算法 1、算法:是指解题方案的准确而完整的描述。 算法不等于程序,也不等于计算方法。,2、对数据对象的运算和操作 算术运算 逻辑运算 关系运算 数据传输 3、算法的控制结构 算法中各操作之间的执行顺序 描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等 一个算法一般可以用顺序、选择、循环三种基本机构组合而成。,4、算法的基本特征 算法具有可行性、确定性、有穷性、输入和输出(拥有足够的情报)等个重要特性。,综上所述,所谓算法,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。,5、算法复杂度主要包括时

2、间复杂度和空间复杂度。 (1)算法时间复杂度是指执行算法所需要的计算工作量,可以用执行算法的过程中所需基本运算的执行次数来度量。 (2)算法空间复杂度是指执行这个算法所需要的内存空间。,例题讲解,算法的时间复杂度是指 A) 执行算法程序所需要的时间 B) 算法程序的长度 C) 算法执行过程中所需要的基本运算次数 D) 算法程序中的指令条数 算法的基本特征是可行性、确定性、 【1】 和拥有足够的情报。 算法的空间复杂度是指 A) 算法程序的长度 B) 算法程序中的指令条数 C) 算法程序所占的存储空间 D) 执行过程中所需要的存储空间 在计算机中,算法是指 A) 加工方法 B) 解题方案的准确而

3、完整的描述 C) 排序方法 D) 查询方法,C),有穷性,D),B),1.2 数据结构的基本概念 1、数据结构是指相互有关联的数据元素的集合。 2、数据结构主要研究以下三个方面的问题: 数据的逻辑结构 数据的存储结构 对各种数据结构进行的运算,1数据的逻辑结构,2、数据的存储结构,3、数据的运算:检索、排序、插入、删除、修改等。,A线性结构,B非线性结构,A 顺序存储,B 链式存储,线性表,栈,队列,树形结构,图形结构,数据结构的三个方面,线性链表,线性结构,A , B , C , ,X ,Y , Z,线性结构条件: (1)有且只有一个根结点; (2)每一个结点最多有一个前件,也最多有一个后件

4、。,线性表结点间是以线性关系联结,1数据的逻辑结构,2、数据的存储结构,3、数据的运算:检索、排序、插入、删除、修改等。,A线性结构,B非线性结构,A 顺序存储,B 链式存储,线性表,栈,队列,树形结构,图形结构,数据结构的三个方面,线性链表,树形结构,全校学生档案管理的组织方式,计算机文件管理系统也是典型的树形结构,树形结构 结点间具有分层次的连接关系,1数据的逻辑结构,2、数据的存储结构,3、数据的运算:检索、排序、插入、删除、修改等。,A线性结构,B非线性结构,A 顺序存储,B 链式存储,线性表,栈,队列,树形结构,图形结构,数据结构的三个方面,(亦称物理结构),线性链表,图形结构节点间

5、的连结是任意的,1数据的逻辑结构,2、数据的存储结构,3、数据的运算:检索、排序、插入、删除、修改等。,A线性结构,B非线性结构,A 顺序存储,B 链式存储,线性表,栈,队,树形结构,图形结构,数据结构的三个方面,(亦称物理结构),线性链表,元素1,存储地址,存储内容,Loc(a)=Lo+(i-1)*m,顺序存储,每个元素所占用 的存储单元个数,顺序存储结构常用于线性数据结构,将逻辑上相邻的数据元素存储在物理上相邻的存储单元里。,顺序存储结构的三个弱点: 1.作插入或删除操作时,需移动大量元数。 2.长度变化较大时,需按最大空间分配。 3.表的容量难以扩充。,1数据的逻辑结构,2、数据的存储结

6、构,3、数据的运算:检索、排序、插入、删除、修改等。,A线性结构,B非线性结构,A 顺序存储,B 链式存储,线性表,栈,队,树形结构,图形结构,数据结构的三个方面,(亦称物理结构),线性链表,1536,元素2,1400,元素1,1346,元素3,元素4,1345,h,链式存储,每个节点都由两部分组成:数据域和指针域。 数据域存放元素本身的数据, 指针域存放指针。 数据元素之间逻辑上的联系由指针来体现。,1536,元素2,1400,元素1,1346,元素3,元素4,head,链式存储,1345,1536,元素2,1400,元素1,1346,元素3,元素4,1345,h,链式存储,1.比顺序存储结

7、构的存储密度小 (每个节点都由数据域和指针域组成)。 2.逻辑上相邻的节点物理上不必相邻。 3.插入、删除灵活 (不必移动节点,只要改变节点中的指针)。,链接存储结构特点:,1数据的逻辑结构,2、数据的存储结构,3、数据的运算:检索、排序、插入、删除、修改等。,A线性结构,B非线性结构,A 顺序存储,B 链式存储,线性表,栈,队,树形结构,图形结构,数据结构的三个方面,(亦称物理结构),线性链表,线性结构和非线性结构,如果一个非空的数据结构满足下列两个条件: 有且只有一个根结点; 每一个结点最多有一个前件,也最多有一个后件 则称该数据结构为线性结构(线性表)。 常见的线性结构有线性表、栈、队列

8、和线性链表等 如果一个数据结构不是线性结构,则称之为非线性结构。,(1)数据集合中各数据元素之间所固有的逻辑关系, 即数据的逻辑结构。 数据的逻辑结构包含: 1)表示数据元素的信息; 2)表示各数据元素之间的前后件关系 。 (2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构。 数据的存储结构有顺序、链接、索引等。,数据的逻辑结构反映数据元素之间的逻辑关系,数据的存储结构(也称数据的物理结构)是数据的逻辑结构在计算机存储空间中的存放形式。同一种逻辑结构的数据可以采用不同的存储结构,但影响数据处理效率。,1.3 线性表及其顺序存储结构 1、线性表由一组数据元素构成,数据元素

9、的位置只取决于自己的序号,元素之间的相对位置是线性的。 表中的每一个数据元素,除了第一个外,有且只有一个前件,除了最后一个外,有且只有一个后件。线性表中数据元素的个数称为线性表的长度。 线性表可以为空表。 *:线性表是一种存储结构,它的存储方式:顺序和链式。,2、线性表的顺序存储结构具有两个基本特点: (1)线性表中所有元素所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。,1.4 栈和队列 1、栈及其基本运算 栈是限定在一端进行插入与删除运算的线性表。 在栈中,允许插入与删除的一端称为栈顶(top),不允许插入与删除的另一端称为栈底(bottom)。栈顶元素

10、总是最后被插入的元素,栈底元素总是最先被插入的元素。即栈是按照“先进后出(FILO)”或“后进先出(LIFO)”的原则组织数据的。栈具有记忆作用。,栈的基本运算: 1)插入元素称为入栈运算; 2)删除元素称为退栈运算; 3)读栈顶元素是将栈顶元素赋给一个指 定的变量,此时指针无变化。 栈的存储方式和线性表类似,也有两种, 即顺序栈和链式栈,1.如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是 A) e3,e1,e4,e2 B) e2,e4,e3,e1 C) e3,e4,e1,e2 D) 任意顺序,2.栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序

11、列可能是 A) ABCED B) DCBEA C) DBCEA D) CDABE,B),B),2、队列及其基本运算 队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。尾指针(Rear)指向队尾元素,头指针(front)指向排头元素的前一个位置(队头)。 队列是“先进先出(FIFO)”或“后进后出(LILO)”的线性表。,队列的主要运算,(1)设置一个空队列; (2)插入一个新的队尾元素,称为进队; (3)删除队头元素,称为出队; (4)读取队头元素;,a1 , a2 , a3 , a4 , an-1 , an,队 列 示 意 图,队头,队尾,循环队列及其运算:所谓循环队列

12、,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置,因此,从头指针front指向的后一个位置直到队尾指针rear指向的位置之间,所有的元素均为队列中的元素。 循环队列中元素的个数=rear-front。,1.5 线性链表 1、线性表顺序存储的缺点: 1)插入或删除的运算效率很低。在顺序存储的线性表中,插入或删除数据元素时需要移动大量的数据元素; 2)线性表的顺序存储结构下,线性表的存储空间不便于扩充; 3)线性表的顺序存储结构不便于对存储空间的动态分配。,2、

13、线性链表:线性表的链式存储结构称为线性链表,是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接来实现的。因此,在链式存储方式中,每个结点由两部分组成:一部分用于存放数据元素的值,称为数据域;另一部分用于存放指针,称为指针域,用于指向该结点的前一个或后一个结点(即前件或后件),如下图所示:,线性链表分为单链表、双向链表和循环链表三种类型。 在单链表中,每一个结点只有一个指针域。因此,在某些应用中,对于线性链表中的每个结点设置两个指针,一个称为左指针,指向其前件结点;另一个称为右指针,指向其后件结点,这种链表称为双向链表,如下图所示:,data,next,bef

14、ore,3、线性链表的基本运算 (1)在线性链表中包含指定元素的结点之前插入一个新元素。 *:在线性链表中插入元素时,不需要移动数据元素,只需要修改相关结点指针即可,也不会出现“上溢”现象。,L,单链表的插入运算,(2)在线性链表中删除包含指定元素的结点。 *:在线性链表中删除元素时,也不需要移动数据元素,只需要修改相关结点指针即可。 当为一个线性表分配顺序存储结构后,如果出现线性表的存储空间已满,但还需要插入新的元素时,就会发生“上溢”现象。,4、循环链表及其基本运算 在线性链表中,其插入与删除的运算虽然比较方便,但还存在一个问题,在运算过程中对于空表和对第一个结点的处理必须单独考虑,使空表

15、与非空表的运算不统一。为了克服线性链表的这个缺点,可以采用另一种链接方式,即循环链表。 图a:是一个非空的循环链表 图b:是一个空的循环链表:,循环链表具有以下两个特点: 1)在链表中增加了一个表头结点,其数据域为任意或者根据需要来设置,指针域指向线性表的第一个元素的结点,而循环链表的头指针指向表头结点; 2)循环链表中最后一个结点的指针域不是空,而是指向表头结点。 即在循环链表中,所有结点的指针构成了一个环状链。,1.循环链表的主要优点是 A) 不再需要头指针了 B) 从表中任一结点出发都能访问到整个链表 C) 在进行插入、删除运算时,能更好的保证链表不断开 D) 已知某个结点的位置后,能够容易的找到它的直接前件,2.线性表的顺序存储结构和线性表的链式存储结构分别是 A) 顺序存取的存储结构、顺序存取的存储结构 B) 随机存取的存储结构、顺序存取的存储结构 C) 随机存取的存储结构、随机存取的存储结构 D) 任意存取的存储结构、任意存取的存储结构 3.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为 【 】 。,例 题,B),B),上溢,树的定义: 由一个或多个结点组成的有限集合。仅有一个根结点,结点间有明显的层次结构关系。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号