2012年计算机二级公共基础知识数据结构与算法归纳及课后习题
计算机二级公共基础知识总结

二级公共基础知识总结第一章数据结构与算法1.1 算法算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。
特征包括:(1)可行性;(2)确定性,算法中每一步骤都必须有明确定义,不允许有模棱两可的解释,不允许有多义性;(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;(4)拥有足够的情报。
算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
指令系统:一个计算机系统能执行的所有指令的集合。
基本运算包括:算术运算、逻辑运算、关系运算、数据传输。
算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
算法时间复杂度是指执行算法所需要的计算工作量。
算法空间复杂度是指执行这个算法所需要的内存空间。
1.2 数据结构的基本概念数据结构研究的三个方面:(1(2(3)对各种数据结构进行的运算。
数据结构是指相互有关联的数据元素的集合。
数据的逻辑结构包含:(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。
数据的存储结构有顺序、链接、索引等。
线性结构条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件的数据结构。
1.3 线性表及其顺序存储结构非空线性表的结构特征:(1)且只有一个根结点a1,它无前件;(2)有且只有一个终端结点an,它无后件;(3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。
结点个数nn=0线性表的顺序存储结构具有以下两个基本特点:(1)线性表中所有元素的所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)为第一个元素的地址,k代表每个元素占的字节数。
计算机二级公共基础知识题库及答案分析

A) DYBEAFCZX B) YDEBFZXCA C) ABDYECFXZ D) ABCDEFXYZ 【答案】C 【解析】本题考查数据结构中二叉树的遍历。根据对二叉树根的访问先后顺序不同,分别称为前序遍历、 中序遍历和后序遍历。这三种遍历都是递归定义的,即在其子树中也按照同样的规律进行遍历。下面就 是前序遍历方法的递归定义。当二叉树的根不为空时,依次执行如下 3 个操作: (1)访问根结点 (2)按先序遍历左子树 (3)按先序遍历右子树 根据如上前序遍历规则,来遍历本题中的二叉树。首先访问根结点,即 A,然后遍历 A 的左子树。遍历左 子树同样按照相同的规则首先访问根结点 B,然后遍历 B 的左子树。遍历 B 的左子树,首先访问 D,然后 访问 D 的左子树,D 的左子树为空,接下来访问 D 的右子树,即 Y。遍历完 B 的左子树后,再遍历 B 的右 子树,即 E。到此遍历完 A 的左子树,接下来遍历 A 的右子树。按照同样的规则,首先访问 C,然后遍历 c 的左子树。即 F。c 的左子树遍历完,接着遍历 c 的右子树。首先访问右子树的根结点 X,然后访问 X 的左子树,X 的左子树,即 Z,接下来访问 X 的右子树,右子树为空。到此,把题目的二叉树进行了一次 前序遍历。遍历的结果为 ABDYECFXZ,故本题的正确答案为选项 C。
(18) 下列对队列的叙述正确的是( ) A)队列属于非线性表 B)队列按“先进后出”原则组织数据 C)队列在队尾删除数据
D)队列按“先进先出”原则组织数据 【答案】D 【解析】本题考查数据结构中队列的基本知识。队列是一种限定性的线性表,它只允许在表的一端插入 元素,而在另一端删除元素,所以队列具有先进先出的特性。在队列中,允许插入元素的一端叫做队尾, 允许删除的一端则称为队头。这与日常生活中的排队是一致的,最早进入队列的人最早离开,新来的人 总是加入到队尾。因此,本题中只有选项 D 的说法是正确的。
计算机二级公共基础知识汇总(附习题答案)(超详细)

计算机二级公共基础知识汇总(附习题答案)(超详细)1.了解算法的基本概念和一些常用的算法,学会计算算法的时间复杂度;2.掌握数据结构的基本概念,并了解数据的逻辑结构和存储结构,学会利用图形的方式表示数据结构;3.了解线性表的基本概念,并掌握线性表的顺序存储结构以及顺序存储的线性表的基本运算;4.了解栈和队列的基本概念,并掌握它们的基本运算;5.了解线性链表的基本概念,并掌握线性链表的基本运算,同时,了解循环链表的基本概念和基本操作6.理解树的概念,尤其是二叉树的基本概念和相关性质,掌握二叉树的存储结构和遍历技术;7.掌握查找技术,学会利用顺序查找和二分查找在数列中查找指定的数据;8.学会利用相关的排序技术实现无序数列的排序操作。
1.了解程序设计的方法,以及程序设计风格确立的一些因素,掌握程序设计的基本规则;2.了解结构化程序设计的基本原则,掌握结构化程序设计的基本结构与特点;3.了解面向对象的程序设计方法,并理解面向对象方法的一些基本概念。
3.了解软件工程的基本概念;4.了解软件工程过程与软件的生命周期,以及软件工程的目标和原则;5.了解利用结构化分析法进行软件工程中的需求分析的方法,并了解需求分析的方法和需要完成的任务;6.了解数据流图的使用方法;7.了解如何利用结构化设计方法进行软件设计,并了解软件设计的一些常用用工具;8.了解软件测试的目的和方法,以及软件测试的准则,了解常用的软件测试方法的区别和各自的功能与特点;9.了解程序调试的方法和原则。
1.了解数据库系统的基本概念,以及数据库系统的发展;2.了解数据模型的基本概念,并对E-R模型、层次模型、网状模型和关系模型进行了解,并掌握关系模型的数据结构、关系的操作和数据约束等知识;3.了解关系模型的基本操作,掌握关系模型的基本运算及扩充运算;4.了解数据库的设计与管理,掌握数据库设计的几个阶段的方法和特点。
软件工程原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
2012年计算机二级公共基础知识数据库设计基础归纳及课后习题

第四章数据库设计基础数据库---DB;数据库管理系统---DBMS;数据库管理员---DBA;数据库系统---DBS;数据库应用系统---DBAS 数据模型所描述的内容分三个部分(数据结构)、(数据操作)、(数据约束)逻辑数据模型分(层次模型)、(网状模型)、(关系模型)、(面向对象模型)E-R模型---实体关系模型,主要由实体、属性、联系组成,联系分:1对1,1对多,多对多;以二维表为基本结构所建立的模型称为关系模型,关系模型采用二维表来表示,简称表,由行和列组成,行称为元组或记录,列称为字段主键---唯一标识一个记录的字段外键---一个表的字段是其他表的主键www.Kao8.CC习题4在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段、数据库系统阶段,其中数据独立性最高的阶段是(数据库系统)数据库系统减少了(数据冗余);数据库系统的核心是(数据库管理系统)用树型结构来表示实体间联系的模型称为(层次模型)关系表中的每一行称为(元组)关系数据库管理系统能实现的专门关系运算包括(选择)、(投影)、(连接)在关系数据库中,用来表示实体之间联系的是(二维表)数据库设计包括两方面的设计内容(概念设计)、(逻辑设计)将E-R图转换到关系模式时,实体与联系都可以表示成(关系)一个项目具有一个项目主管,一个项目主管可以管理多个项目,则实体“项目主管”与“项目”的联系属于(一对多)数据独立性分为逻辑独立性和物理独立性,当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为(逻辑独立性)数据库系统中实现各种数据管理功能的核心软件称为(数据库管理系统DBMS)关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、(参照完整性)和自定义完整性。
计算机二级数据结构与算法答案(1)

计算机⼆级数据结构与算法答案(1)第⼀章数据结构与算法⼀、选择题:1、栈和队列的共同特点是()A、都是先进先出B、都是后进先出C、只允许在端点处插⼊和删除数据D、没有共同点2、已知⼆叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是()A、acbedB、decabC、debacD、cedba3、下⾯叙述正确的是()A、算法的执⾏效率与数据的存储结构⽆关。
B、算法的空间复杂度是指算法程序中指令(或语句)的条数。
C、算法的有穷性是指算法必须能在执⾏有限个步骤之后终⽌。
D、算法的时间复杂度是指执⾏算法程序所需要的时间。
4、以下数据结构属于⾮线性数据结构的是()A、队列B、线性表C、⼆叉树D、栈5、算法⼀般都可以⽤哪⼏种控制结构组合⽽成?()A、循环、分⽀、递归B、顺序、循环、嵌套C、循环、递归、选择D、顺序、选择、循环6、数据的存储结构是指()A、数据所占的存储空间量B、数据的逻辑结构在计算机中的表⽰C、数据在计算机中的顺序存储⽅式D、存储在外存中的数据7、链表不具有的特点是()A、不必事先估计存储空间B、可随机访问任⼀元素C、插⼊删除不需要移动元素D、所需空间与线性表长度成正⽐8、算法的时间复杂度是指()A、执⾏算法程序所需要的时间B、算法程序的长度C、算法执⾏过程中所需要的基本运算次数D、算法程序中的指令条数9、在⼀棵⼆叉树上第⼋层的结点数最多是()A、8B、16C、128D、25610、若⼀棵⼆叉树中只有叶结点和左右⼦树皆⾮空的结点,设叶结点的个数为k,则左右⼦树皆⾮空的结点个数是()A、2kB、k-1C、2k-1D、2k-111、设⽆向树T有7⽚树叶,其余顶点数均为3,则T中3度顶点的个数为()A、3B、4C、5D、612、已知⼀棵⼆叉树前序遍历和中序遍历分别为ABDEGCFH 和DBGEACHF,则该⼆叉树的后序遍历为()A、GEDHFBCAB、DGEBFCAC、ABCDEFGHD、ACBFEDHG13、树是结点的集合,它的根结点数⽬是()A、有且只有1个B、1个或多于1个C、0个或1个D、⾄少2个14、下列叙述中正确的是()A\线性表是线性结构B、栈和队列是⾮线性结构C、线性链表是⾮线性结构D、⼆叉树是线性结构15、堆栈存储器存取数据的⽅式是()A、先进先出B、随机存取C\先进后出D、不同于前三种⽅式16、如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是()A、e3,e1,e4,e2B、e4,e3,e2,e1C、e3,e4,e1,e2D、任意顺序17、在设计程序时应采⽤的原则之⼀是()A、不限制goto语句的使⽤B、减少或取消注释⾏C、程序越短越好D、程序结构应助于读者理解18、下⾯关于完全⼆叉树的叙述中,错误的是()A、除了最后⼀层外,每⼀层上的结点数均达到最⼤值B、可能缺少若⼲个左右叶⼦结点C、完全⼆叉树⼀般不是满⼆叉树D、具有⼏个结点的完全⼆叉树的深度为log2n+119、下列关于栈的叙述中正确的是()A、在栈中只能插⼊数据B、在栈中只能删除数据C、栈是先进先出的线性别D、栈是先进后出的线性表20、在深度为5的满⼆叉树中,叶⼦结点的个数为()A、32B、31C、16D、1521、⼀个算法应该具有“确定性”等五个特性,下⾯对另外四个特性的描述中错误的是()A、有零个或多个输⼊B、有零个或多个输出C、有穷形D、可⾏性22、若想将数据序列使⽤插⼊排序算法由⼩到⼤排序,则每次放到有序⼦列合适位置上的元素,应从⽆序序列中选择()A、固定位置的B、最⼩的C、任意的D、最⼤的23、算法的空间复杂度是指()A、算法程序的长度B、算法程序中的指令条数C、算法程序所占的存储空间D、执⾏过程中所需要的存储空间24、⽤链表表⽰线性表的优点是()A、便于随机存取B、花费的存储空间较顺序存储少C、便于插⼊和删除操作D、数据元素的物理顺序与逻辑顺序相同25、链表不具备的特点是()A、可随机访问任意⼀个结点B、插⼊和删除不需要移动任何元素C、不必事先估计存储空间D、所需空间与其长度成正⽐26、数据结构中,与所使⽤的计算机⽆关的是数据的()A、存储结构B、物理结构C、逻辑结构D、物理与逻辑结构27、希尔排序法属于()类型的排序法。
计算机二级基础知识试题及答案

计算机二级基础知识试题及答案计算机二级基础知识试题及答案选择题-公共基础知识-数据结构与算法(共32题)第1组161) 下列叙述中正确的是A)循环队列是线性结构B)循环队列是线性逻辑结构C)循环队列是链式存储结构D)循环队列是非线性存储结构答案:A162) 设某棵树的度为3,其中度为3,2,1的结点个数分别为3,0,4。
则该树中的叶子结点数为A)7B)8C)6D)不可能有这样的树答案:A163) 设有一个栈与一个队列的初始状态均为空。
现有一个序A,B,C,D,E,F,G,H,先分别将序列中的前4个元素依次入栈,后4个元素依次入队;然后分别将栈中的元素依次退栈,再将队列中的元素依次退队。
最后得到的序列为A)D,C,B,A,E,F,G,HB)D,C,B,A,H,G,F,EC)A,B,C,D,E,F,G,HD)A,B,C,D,H,G,F,E答案:A164) 下列叙述中错误的是A)具有两个以上指针域的链式结构一定属于非线性结构B)具有两个以上叶子结点的数据结构一定属于非线性结构C)具有两个根结点的数据结构一定属于非线性结构D)具有一个根结点且只有一个叶子结点的数据结构也可能是非线性结构答案:A第2组165) 下列结构中属于线性结构链式存储的是A)双向链表B)循环队列C)二叉链表D)二维数组答案:A166) 下列叙述中错误的是A)循环链表的存储空间是连续的.B)循环链表中有一个表头结点C)循环链表的表头指针与循环链表中最后一个结点的指针均指向表头结点D)循环链表实现了空表与非空表运算的统一答案:A167)度为3的一棵树共有30个结点,其中度为3,1的结点个数分别为3,4。
则该树中的叶子结点数为A)15B)16C)14D)不可能有这样的树答案:A168) 在长度为97的顺序有序表中作二分查找,最多需要的比较次数为A)7B)96C)48D)6答案:A第3组169) 下列结构中属于非线性结构的是A)二叉链表B)二维数组C)循环队列D)双向链表答案:A【解析】二叉链表是二叉树的物理实现,是一种存储结构,不属于线性结构。
年计算机二级公共基础知识数据结构与算法归纳及课后习题
2012年计算机二级公共基础知识数据结构与算法归纳及课后习题第一章数据结构与算法算法---是一组严谨地定义运算顺序的规则算法的基本要素---一是对数据对象的运算和操作,二是算法的控制结构算法设计基本方法---列举法、归纳法、递推、递归、减半递推算法的复杂度---包括时间复杂度和空间复杂度时间复杂度---执行算法所需的计算工作量空间复杂度---执行算法所需的内存空间数据结构---相互有关联的数据元素的集合。
如春、夏、秋、冬;18、11、35、23、16。
;父亲、儿子、女儿等都是数据元素。
前件---数据元素之间的关系,如父亲是儿子和女儿的前件后件---如儿子是父亲的后件结构---指数据元素之间的前后件关系数据的逻辑结构—是指反映数据元素之间逻辑关系,而与它们在计算机中的存储位置无关数据的存储结构(物理结构)---数据的逻辑结构在计算机存储空间中的存放形式,数据元素在计算机存储空间的位置关系可能与逻辑关系不同。
根据数据结构中各数据元素之间前后件关系的复杂程度,可将数据结构分两类---线性结构与非线性结构线性结构(线性表)---满足下列两个条件(1)有且只有一个根结点(2)每一个结点最多有一个前件和后件。
则称该数据结构为线性结构,否则为非线性结构。
线性表是最简单、最常用的一种数据结构,其数据元素之间的相对位置是线性的,其存储方式为顺序存储的,如数组栈---是限定在一端进行插入与删除的线性表,一端封闭,另一端开口,其操作原则是“先进后出”,栈的运算有入栈、退栈、读栈顶元素队列---是指在一端进行插入(称为队尾)而在另一端进行删除(称为队头)的线性表,其操作规则是“先进先出”,其运算有入队和退队。
树---是一种简单的非线性结构,而且是层次结构,是倒立的大树,有根结点、父结点、子结点、叶子结点。
根结点在第一层,一个结点所拥有的后件的个数称为该结点的度,所有结点中最大的度称为树的度,树的最大层次称为树的深度。
二叉树---(1)非空二叉树只有一个根结点(2)每一个结点最多有两棵子树(左子树和右子树),其存储结构为链式。
2012全国计算机二级C语言_公共基础知识
第1章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1.1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。
在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。
(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。
1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的。
撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。
二级公共基础知识(数据结构与算法)(稻香书屋)
放弃该放弃的,选择轻装上阵
学习幻灯
3
一、 数据结构与算法
1. 算法的基本概念;算法复杂度的概念和意义(时间复杂度 与空间复杂度)。
2. 数据结构的定义;数据的逻辑结构与存储结构;数据结构 的图形表示;线性结构与非线性结构的概念。
3. 线性表的定义;线性表的顺序存储结构及其插入与删除运 算。
4. 栈和队列的定义;栈和队列的顺序存储结构及其基本运算。 5. 线性单链表、双向链表与循环链表的结构及其基本运算。 6. 树的基本概念;二叉树的定义及其存储结构;二叉树的前
do{ printf("Please input R:"); scanf("%f", &R); if (R<0) printf("Error!\n");
}while(R<=0); s=PI*R*R; printf("Area=%f\n", S); return 0; }
算术运算 逻辑运算 关系运算 数据传输
全国计算机等级考试
二级公共基础知识
学习幻灯
1
考试形式
1、公共基本知识部份只考选择题,没有操 作题。
2、公共基本知识占10分,共10道题,每 题1分。
学习幻灯
2
注意事项
公共基础知识部份的内容是属于计算机专 业本科生的专业课,知识点特别散,而 且有一定的难度。所以考生在学习的过 程中,一定要克服畏难情绪,跟上老师 的节奏。老师让记的,要记住。没做要 求的,要学会放弃。
数据的逻辑结构简称数据结构。
数据结构可描述为 Group=(D,R)
有限个数据元素的集合
有限个数据元素间关系的集合
学习幻灯
二级公共基础知识计算机基础知识(必看)资料
第一部分公共基础知识第1章数据结构与算法1.1算法1.算法的基本概念(1)概念:算法是指一系列解决问题的清晰指令。
(2)4个基本特征:可行性、确定性、有穷性、拥有足够的情报。
(3)两种基本要素:对数据对象的运算和操作、算法的控制结构(运算和操作时间的顺序)。
(4)设计的基本方法:列举法、归纳法、递推法、递归法、减半递推技术和回溯法。
2.算法的复杂度(1)算法的时间复杂度:执行算法所需要的计算工作量。
(2)算法的空间复杂度:执行算法所需的内存空间。
1.2数据结构的基本概念数据结构指相互有关联的数据元素的集合,即数据的组织形式。
其中逻辑结构反映数据元素之间逻辑关系;存储结构为数据的逻辑结构在计算机存储空间中的存放形式,有顺序存储、链式存储、索引存储和散列存储4种方式。
数据结构按各元素之间前后件关系的复杂度可划分为:(1)线性结构:有且只有一个根节点,且每个节点最多有一个直接前驱和一个直接后继的非空数据结构。
(2)非线性结构:不满足线性结构的数据结构。
1.3线性表及其顺序存储结构1.线性表的基本概念线性结构又称线性表,线性表是最简单也是最常用的一种数据结构。
2.线性表的顺序存储结构·元素所占的存储空间必须连续。
·元素在存储空凤的位置是按逻辑顺序存放的。
3.线性表的插入运算在第i个元素之前插入一个新元素的步骤如下:步骤一:把原来第n个节点至第i个节点依次往后移一个元素位置。
步骤二:把新节点放在第i个位置上。
步骤三:修正线性表的节点个数。
在最坏情况下,即插入元素在第一个位置,线性表中所有元素均需要移动。
4.线性表的删除运算删除第i个位置的元素的步骤如下:步骤一:把第i个元素之后不包括第i个元素的n—i个元素依次前移一个位置;步骤二:修正线性表的结点个数。
1.4栈和队列1.栈及其基本运算(1)基本概念:栈是一种特殊的线性表,其插入运算与删除运算都只在线性表的一端进行,也被称为“先进后出”表或“后进先出”表。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2012年计算机二级公共基础知识数据结构与算法归纳及课后习
题
第一章数据结构与算法
算法---是一组严谨地定义运算顺序的规则
算法的基本要素---一是对数据对象的运算和操作,二是算法的控制结构
算法设计基本方法---列举法、归纳法、递推、递归、减半递推
算法的复杂度---包括时间复杂度和空间复杂度
时间复杂度---执行算法所需的计算工作量
空间复杂度---执行算法所需的内存空间
数据结构---相互有关联的数据元素的集合。
如春、夏、秋、冬;18、11、35、23、16。
;父亲、儿子、女儿等都是数据元素。
前件---数据元素之间的关系,如父亲是儿子和女儿的前件
后件---如儿子是父亲的后件
结构---指数据元素之间的前后件关系
数据的逻辑结构—是指反映数据元素之间逻辑关系,而与它们在计算机中的存储位置无关
数据的存储结构(物理结构)---数据的逻辑结构在计算机存储空间中的存放形式,数据元素在计算机存储空间的位置关系可能与逻辑关系不同。
根据数据结构中各数据元素之间前后件关系的复杂程度,可将数据结构分两类---线性结构与非线性结构
线性结构(线性表)---满足下列两个条件(1)有且只有一个根结点(2)每一个结点最多有一个前件和后件。
则称该数据结构为线性结构,否则为非线性结构。
线性表是最简单、最常用的一种数据结构,其数据元素之间的相对位置是线性的,其存储方式为顺序存储的,如数组
栈---是限定在一端进行插入与删除的线性表,一端封闭,另一端开口,其操作原则是“先进后出”,栈的运算有入栈、退栈、读栈顶元素
队列---是指在一端进行插入(称为队尾)而在另一端进行删除(称为队头)的线性表,其操作规则是“先进先出”,其运算有入队和退队。
树---是一种简单的非线性结构,而且是层次结构,是倒立的大树,有根结点、父结点、子结点、叶子结点。
根结点在第一层,一个结点所拥有的后件的个数称为该结点的度,所有结点中最大的度称为树的度,树的最大层次称为树的深度。
二叉树---(1)非空二叉树只有一个根结点(2)每一个结点最多有两棵子树(左子树和右子树),其存储结构为链式。
二叉树性质---(1)K层上最多有2(K-1)个结点(2)深度为m的二叉树最多有2m-1个结点
(3)度为0的结点(叶子结点)比度为2的结点多一个(4)具有n个结点的二叉树,其深度至少为[Log2n]+1,其中[Log2n]表示对Log2n取整
满二叉树---除最后一层外,其余层的结点都有两个子结点
完全二叉树---除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点,叶子结点只可能在层次最大的两层上出现。
满二叉树是完全二叉树,而完全二叉树不是满二叉树。
完全二叉树有两个性质:(1)具有n个结点的完全二叉树的深度为[Log2n]+1(2)
二叉树遍历---不重复地访问各个结点。
分为前序遍历(DLR-根左右)、中序遍历(LDR-左根右)和后序遍历(LRD-左右根)
查找技术---顺序查找——对于长度为n的有序线性表,查找时需要比较n次
二分法查找——对于长度为n的有序线性表,查找时需要比较log2n次
排序技术---假设线性表的长度为n,则冒泡排序和简单插入排序的比较次数(时间复杂度)为n(n-1)/2;希尔排序的比较次数为O(n1.5);简单选择排序的比较次数为n(n-1)/2;堆排序的比较次数为O(nlog2n).
习题1
算法的时间复杂度是指(),算法的空间复杂度是指();
队列是(先进先出),栈是(先进后出);
下列二叉树的遍历结果:前序遍历(ABDECF)、中序遍历(DBEAFC)、后续遍历(DEBFCA);
在深度为5的满二叉树中,叶子结点的个数为(16);设树T的度为4,其中度为1,2,3;
线性表、栈、队列、线性链表是(线性结构),树是(非线性结构);数据的存储结构是指();,4的结点的个数分别为4,2,1,1。
则T中的叶子结点的个数为(8);对于长度为n的有序线性表,顺序查找次数为(n),二分法查找次数为(log2n);一棵完全二叉树共有700个结点,则在该二叉树中有(350)个叶子结点;一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后续遍历结果为(DEBFCA);冒泡排序的时间复杂度为(n(n-1)/2);在一个容量为15的循环队列中,若头指针front=6,尾指针rear=9,则该循环队列中共有(3)元素
第二章程序设计基础
结构化程序设计的三种结构---是顺序、选择和循环
对象---表示客观世界的任何实体
类---是具有共同属性和方法的对象的集合
实例---任何一个对象都是其对应类的实例
消息---一个实例和另一个实例之间传递的信息
继承---是指直接获得已有的性质和特征,而不必重复定义它们。
例如子类继承父类结构化程序设计主要强调---程序的易读性
良好的程序设计风格是---程序应简单、清晰、可读性好
习题2
在面向对象方法中,一个对象请求另一个对象为其服务的方式是通过发送(消息)来实现的
信息隐蔽的概念与(模块独立性)概念直接相关
(任何对象都具有继承性)这句话是错误的
注释分为(序言性注释)和(功能性注释)
在面向对象方法中,信息隐蔽是通过对象的(封装性)来实现的
类是一个支持集成的抽象数据类型,而对象是类的(实例)
在面向对象方法中,类之间共享属性和操作的机制称为(继承)
第三章软件工程基础
软件生命周期---软件产品从提出、实现、使用维护到停止使用退役的过程。
分为软件定义、软件开发、软件运行维护三个阶段。
软件生命周期的主要活动阶段---可行性分析、需求分析、软件设计、软件实现、软件测试、运行和维护。
常见的需求分析方法---
(1)结构化分析方法---主要包括面向数据流的结构化分析方法SA;面向数据结构的Jackson方法JSD;面向数据结构的结构化数据系统开发方法DSSD。
(2)面向对象的分析方法OOA
结构化分析方法工具---
(1)数据流图DFD,记住DFD图的几个符号:
(2)数据字典DD
(3)判定树
(4)判定表
程序结构图(SC),N-S图,问题分析图(PAD)
程序流程图(PFD)的几个符号:
软件测试---黑盒测试:功能测试
白盒测试:内部结构测试,穷举路径测试
习题3
在软件生命周期中,能准确地判断软件系统必须做什么和必须具备哪些功能的阶段是(需求分析)
软件工程的3个要素(工具),(过程),(方法)
检查软件产品是否符合需求定义的过程称为(确认测试)
软件设计原则是(抽象)、(模块化)、(信息隐蔽)
需求分析常用的工具是(DFD)
在结构化方法中,软件功能分解属于(总体设计)阶段
软件测试的饿目的是(改正错误)
软件需求分析阶段可分为四个方面(需求获取)、(需求分析)、(编写需求格式说明)、(需求评审)
软件是(程序)、(数据)、(文档)的集合
Jakson方法是一中面向(数据流)的结构化方法
软件工程研究的内容包括(软件开发技术)、(软件工程管理)
数据流图的类型有(交换型)、(事务型)
软件开发环境是全面支持软件开发全过程的(软件工具)集合
第四章数据库设计基础
数据库---DB;数据库管理系统---DBMS;数据库管理员---DBA;数据库系统---DBS;数据库应用系统---DBAS
数据模型所描述的内容分三个部分(数据结构)、(数据操作)、(数据约束)
逻辑数据模型分(层次模型)、(网状模型)、(关系模型)、(面向对象模型)
E-R模型---实体关系模型,主要由实体、属性、联系组成,联系分:1对1,1对多,多对多;
以二维表为基本结构所建立的模型称为关系模型,关系模型采用二维表来表示,简称表,由行和列组成,行称为元组或记录,列称为字段
主键---唯一标识一个记录的字段
外键---一个表的字段是其他表的主键
习题4
在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段、数据库系统阶段,其中数据独立性最高的阶段是(数据库系统)
数据库系统减少了(数据冗余);数据库系统的核心是(数据库管理系统)
用树型结构来表示实体间联系的模型称为(层次模型)
关系表中的每一行称为(元组)
关系数据库管理系统能实现的专门关系运算包括(选择)、(投影)、(连接)
在关系数据库中,用来表示实体之间联系的是(二维表)
数据库设计包括两方面的设计内容(概念设计)、(逻辑设计)
将E-R图转换到关系模式时,实体与联系都可以表示成(关系)
一个项目具有一个项目主管,一个项目主管可以管理多个项目,则实体“项目主管”与“项目”的联系属于(一对多)
数据独立性分为逻辑独立性和物理独立性,当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为(逻辑独立性)
数据库系统中实现各种数据管理功能的核心软件称为(数据库管理系统DBMS)
关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、(参照完整性)和自定义完整性。