软件工程复习大纲

发布 2021-05-13 17:19:28 阅读 3334

1什么是算法?算法有哪些特征?哪些要素构成了算法?

算法(algorithm)是指解题方****而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。

特征:1、有穷性2、确切性3、可行性。

要素:操作,控制结构(顺序结构,条件结构,循环结构)

2.算法的评价标准有哪些?

1.时间复杂度2.空间复杂度3.正确性4.可读性5.健壮性。

3.评价算法复杂度有哪些指标?

4.数据结构中常用的线性结构有哪些?有哪些相同的特点?有哪些不同的特点?

栈和队列;有且只有一个根节点。每一个节点最多有一个前件,也最多有一个后件;栈是“先进后出”,队列是“先进先出”

5.线性表顺序存储地址的计算。

6.掌握线性表常用的几种运算,能够编写程序。

7.掌握链表常用的几种运算?能够编写程序。

8.栈的特点是什么。

栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。

9.能够写出利用栈的特性的实现的排列组合。

10.顺序栈的实现有哪两种方法?各有什么特点?判断栈空、栈满和出栈入栈操作有什么不同?

方案1:栈空间范围为:s[0..maxsize-1]; 顶指针指向顶元素所在位置。

方案2:栈空间范围为:s[0..maxsize-1]; 顶指针指向顶元素上的一空位置。

入栈:void seqstack_push(pseqstack s, elemtype e)

if(printf("stack overflow!“)

exit(1);

s->data[s->top]=e;

s->top++;

出栈:elemtype seqstack_pop(pseqstack s)

elemtype temp;

if(s->top==-1)

temp = s->data[s->top];

s->top--;

return temp;

11.队列的特点。

队列是一种只允许在表的一端(称为队尾)进行插入,在另一端(称为队头)进行删除的线性表。

12.什么是顺序队列的假溢出现象?

13.实现循环队列时,对循环队列判断队空队满有哪几种实现方法?

方法1:用一个计数变量来记载队列中的元素个数。

初始化队列时count=0;

当入队时,计数变量+1( count++

当出队时,计数变量-1 (count--)

当count==maxsize时,队满。

当count==0时,队空。

方法2:设一个标志位用来区别队列是空还是满。

初始化队列时:标志位为false

入队后, 则置标志位为true

出队后,将标志位置为false

当 且标志位为true时,队满。

当 但标志位为false时,队空。

其他为非空非满。

方法3:少用一个存储单元,即对大小为maxsize的数组,只允许存maxsize-1个结点。

队空条件: front ==rear (初始化时:front=rear)

队满条件:front==(rear+1)%m(m=maxsize)

14.树的基本概念,利用概念解题。

树(tree)是一类重要的非线性数据结构,是以分支关系定义的层次结构。

15.二叉树的概念,基本性质。

定义:二叉树是n(n>=0)个结点的有限集,它或为空树(n=0),或由一个根结点和两棵分别称为左子树和右子树的互不相交的二叉树构成。

性质1:若二叉树的层次从1开始,二叉树中第 i 层上最多有 2i-1 个结点

性质2:深度为k的二叉树至多有2^k-1个结点(k>=1)

性质3:对任何一棵二叉树, 如果其叶结点个数为n0, 度为2的结点个数为 n2, 则有n0=n2+1。

性质4:对任何具有n个结点的完全二叉树的深度为[log 2 n]+1

16.二叉树简单计算题。

17.由二叉树写出三种遍历结果,以及反之。

dlr—先序遍历,即先根再左再右。

ldr—中序遍历,即先左再根再右。

lrd—后序遍历,即先左再右再根。

18.哈夫曼树的概念及简单计算。

最优二叉树(哈夫曼树):给定n个权值,试构造一棵有n个叶子结点的二叉树,每个叶子结点带权为wi。构造出来的二叉树的形态可以有多个,我们把其中带权路径长度wpl最小的二叉树称作最优二叉树或者哈夫曼树。

19.会构造哈夫曼树。

1、有n个叶子结点。

2、没有度为1的结点。

3、总的结点数为 2n-1

4、形态不唯一。

20.掌握讲过的几种查找算法的基本概念,能编写程序。

21掌握讲过的几种排序算法的基本概念,能编写程序。

软件工程复习大纲

1 软件工程定义,本质特性,出现背景。软件工程是指导计算机软件开发和维护的一门工程学科。软件工程是 把系统的 规范的 可度量的途径应用于软件开发 运行和维护过程,也就是把工程应用于软件 研究中提到的途径。本质特性 1 软件工程关注于大型程序的构造。2 软件工程的中心课题是控制复杂性。3 软件经常变化...

软件工程复习大纲

考试题型。名词解释 填空 简答题 应用题 分析 设计 测试等 重点内容。第1章软件与软件工程的概念。1.了解与软件相关的基本概念,包括软件 程序 数据 文档。2.了解软件危机的表现及发生的原因。3.掌握软件工程的概念。4.软件生命周期由哪三个时期组成,每个时期又可划分为哪些阶段?每个阶段的主要任务是...

软件工程复习大纲

软件工程概论复习大纲。一 选用教材 软件工程导论 张海藩清华大学出版社 第5版 课程负责人 马丽。授课教师 08 软件工程1 3班马丽。二 考试方法。一 考试方法 笔试,闭卷,满分100分。二 考试时间 110分钟。三 试卷结构 一 题型及分数比例。选择题20 填空题 10 判断题 10 简答题20...