计算机软件技术02第二章 基本数据结构及其运算_作业03

合集下载

第二章基本数据结构及其运算

第二章基本数据结构及其运算

第二章基本数据结构及其运算本章主要介绍计算机中常见的基本数据结构及其运算。

数据结构是计算机存储、组织和管理数据的方式,它对算法的设计和效率有很大影响。

基本数据结构包括线性表、栈、队列、树、图等,以及它们的各种运算。

1.线性表线性表是最简单、最常用的数据结构之一、线性表的定义是n个数据元素的有限序列:a1, a2, …, an。

其中,a1是第一个元素,an是最后一个元素。

线性表的特点是数据元素之间是一对一的关系,每个元素只有一个直接前驱和一个直接后继。

线性表的运算主要包括:-插入:在指定位置插入一个元素;-删除:删除指定位置上的元素;-查找:根据索引查找元素;-修改:根据索引修改元素的值;-遍历:依次访问线性表中的每个元素。

2.栈栈是一种特殊的线性表,具有“先进后出”(Last In First Out, LIFO)的特点。

在栈中,最后插入的元素是第一个被访问的元素,最先插入的元素是最后一个被访问的元素。

栈的运算主要包括:-入栈:将一个元素插入到栈的顶部;-出栈:从栈顶删除一个元素;-栈顶元素:查看栈顶的元素,不改变栈的内容。

栈的应用场景有很多,例如函数调用、表达式求值、迷宫求解等。

3.队列队列也是一种特殊的线性表,具有“先进先出”(First In First Out, FIFO)的特点。

在队列中,最先插入的元素是第一个被访问的元素,最后插入的元素是最后一个被访问的元素。

队列的运算主要包括:-入队:将一个元素插入到队列的末尾;-出队:从队列的头部删除一个元素;-队首元素:查看队列的头部元素,不改变队列的内容。

队列的应用场景有很多,例如任务调度、缓冲区管理、广度优先等。

4.树树是一种非线性的数据结构,它由n(n>=0)个节点组成的有限集合。

特点是每个节点最多有一个直接前驱和多个直接后继。

树的运算主要包括:-插入节点:在树中插入一个新节点;-删除节点:从树中删除一个指定节点;-查找节点:在树中查找一个指定节点;-遍历树:按照其中一种规则,依次访问树中的每个节点。

第02章 基本数据结构及其运算

第02章 基本数据结构及其运算

在计算机中存放线性表,一种最简单 的方法是顺序存储,也称为顺序分配。顺 序存储的线性表通常称为顺序表。
线性表的顺序存储结构具有以下两个 基本特点:
① 线性表中所有元素所占的存储空间 是连续的。
② 线性表中各数据元素在存储空间中 是按逻辑顺序依次存放的。
在计算机中的顺序存储结构如图 2.8所示。
在程序设计语言中,通常定义一个一 维数组来表示线性表的顺序存储空间。
int m,*n,i; /*m为顺序表空间容量,n 为指向线性表长度的指针,
i为插入元素的序号*/
{ if (*n==m) /*顺序表空间已满,上溢 错误,返回*/
{ printf("overflow \n"); return; }
if (i>*n–1) i=*n+1; /*在线性表的 最后插入*/
例2.3 n维向量 X = (x1,x2,…,xn) 也是一种数据结构。即X = (D,R),其 中数据元素的集合为:
D = {x1,x2,…,xn} 关系为:
R = {(x1,x2),(x2,x3),…,(xn – 1,xn)}
例如,m×n的矩阵
是一个数据结构。在这个数据结构中, 矩阵的每一行
首先举一个例子来说明如何在顺序存 储结构的线性表中删除一个元素。
一般来说,设长度为n的线性表为:
现要删除第i个元素,删除后得到长度 为n – 1的线性表为:
则删除前后的两线性表中的元素满足 如下关系:
在线性表顺序存储的情况下,要删除 一个元素,由于数据元素的移动而消耗较 多的处理时间,其效率也是很低的,特别 是在线性表比较大的情况下更为突出。
通常,一个数据结构中的元素结点可 能是在动态变化的。
数据结构中的结点(即数据元素)个 数在动态地变化,而且,各数据元素之间 的关系也有可能在动态地变化。

计算机软件技术基础完整版

计算机软件技术基础完整版

计算机软件技术基础完整版一、程序设计语言程序设计语言是程序员与计算机之间进行交流的工具。

它们允许程序员编写指令,告诉计算机如何执行特定的任务。

常见的程序设计语言包括:高级语言:例如C、C++、Java、Python等,它们提供了丰富的抽象功能,使程序员能够更高效地编写代码。

低级语言:例如汇编语言和机器语言,它们与计算机硬件更接近,但编写起来更复杂。

二、数据结构数据结构是存储和组织数据的方式。

它们允许程序员高效地存储、检索和操作数据。

常见的数据结构包括:数组:用于存储一系列相同类型的元素。

链表:用于存储一系列不同类型的元素,元素之间通过指针连接。

栈:后进先出的数据结构,常用于存储临时数据。

队列:先进先出的数据结构,常用于存储等待处理的数据。

三、算法算法是解决问题的步骤。

它们是程序的核心,决定了程序的性能和效率。

常见的算法包括:排序算法:例如冒泡排序、选择排序、快速排序等,用于将数据按照特定顺序排列。

搜索算法:例如线性搜索、二分搜索等,用于在数据结构中查找特定元素。

图算法:例如深度优先搜索、广度优先搜索等,用于处理图结构的数据。

四、软件工程软件工程是开发高质量软件的学科。

它涵盖了软件开发的各个方面,包括需求分析、设计、编码、测试、维护等。

五、软件测试软件测试是确保软件质量的重要步骤。

它包括单元测试、集成测试、系统测试和验收测试等。

六、软件维护软件维护是在软件发布后对其进行修改和改进的过程。

它包括修复bug、添加新功能、提高性能等。

七、软件项目管理软件项目管理是确保软件项目按时、按预算、按质量完成的过程。

它包括需求管理、进度管理、成本管理、质量管理等。

八、软件文档软件文档是描述软件的功能、设计、实现和使用等方面的文档。

它包括需求规格说明书、设计文档、用户手册等。

九、软件工具软件工具是辅助软件开发、测试和维护的工具。

它们包括集成开发环境、代码编辑器、调试器、测试工具等。

十、软件发展趋势云计算:软件将更多地运行在云端,而不是本地计算机上。

计算机软件技术基础 (2)

计算机软件技术基础 (2)

第2章基本数据结构及其运算2.1 数据结构的基本概念2.1.1 两个例子图2.1 数据元素存放顺序不同的两个表计算机软件技术基础(第二版)计算机软件技术基础(第二版)2.1.2 什么是数据结构1. 数据的逻辑结构2. 数据的存储结构计算机软件技术基础(第二版)2.1.3 数据结构的图形表示图2.2 一年四季数据结构的图形表示图2.3 家庭成员间辈分关系数据结构的图形表示图2.4 例2.6数据结构的图形表示图2.5 不是线性结构的数据结构特例2.2 线性表及其顺序存储结构2.2.1 线性表及其运算1. 什么是线性表计算机软件技术基础(第二版)2. 线性表的顺序存储结构图2.6 线性表的顺序存储结构3. 线性表在顺序存储下的插入运算图2.7 线性表在顺序存储结构下的插入例4. 线性表在顺序存储下的删除运算计算机软件技术基础(第二版)图2.8 线性表在顺序存储结构下的删除例5. 顺序表类2.2.2 栈及其应用1. 什么是栈图2.9 主程序与子程序之间的调用关系图2.10 栈示意图2. 栈的顺序存储及其运算计算机软件技术基础(第二版)图2.11 栈在顺序存储结构下的运算3. 顺序栈类4. 表达式的计算计算机软件技术基础(第二版)图2.12 表达式A+B*C-D/E的计算过程5. 递归的实现2.2.3 队列及其应用1. 什么是队列图2.13 具有6个元素的队列示意图图2.14 队列示意图2. 循环队列及其运算图2.15 循环队列存储空间示意图计算机软件技术基础(第二版)图2.16 循环队列运算例3. 循环队列类4. 队列的应用图2.17 通过缓冲区传送数据示意图2.3 线性链表及其运算2.3.1 线性链表的基本概念1. 线性链表图2.18 线性链表的存储空间图2.19 线性链表的一个存储结点计算机软件技术基础(第二版)图2.20 线性链表的逻辑结构图2.21 线性链表例图2.22 双向链表示意图2. 线性链表类3. 带链的栈图2.23 带链的栈图2.24 可利用栈及其运算4. 带链的队列图2.25 带链的队列及其运算2.3.2 线性链表的基本运算1. 线性链表的插入图2.26 线性链表的插入2. 线性链表的删除2.3.3 循环链表2.3.4 多项式的表示与运算图2.29 多项式非零系数项的结点结构图2.30 多项式的链式结构1. 多项式链表的生成2. 多项式链表的释放3. 多项式的输出4. 多项式的相加5. 多项式的相乘2.4 数组2.4.1 数组的顺序存储结构1. 二维数组以行为主的顺序存储2. 二维数组以列为主的顺序存储2.4.2 规则矩阵的压缩1. 下三角矩阵的压缩存储图2.31 用一维数组压缩存放下三角矩阵2. 对称矩阵的压缩存储3. 三对角矩阵的压缩存储图2.32 用一维数组压缩存放三对角矩阵2.4.3 一般稀疏矩阵的表示1. 稀疏矩阵的三列二维数组表示图2.33 稀疏矩阵的表示例图2.34 POS与NUM向量例图2.35 C++中稀疏矩阵的表示例图2.36 C++中POS与NUM向量例2. 稀疏矩阵的线性链表表示3. 十字链表图2.37 十字链表的结点结构图2.38 十字链表例2.5 树与二叉树2.5.1 树的基本概念图2.39 一般的树图2.40 学校行政层次结构树图2.41 书的层次结构树图2.42 a*(b+c/d)+e*h-g*f(s,t,x+y)的两种表达式树图2.43 树链表中的结点结构2.5.2 二叉树及其基本性质1. 什么是二叉树图2.44 二叉树例2. 二叉树的基本性质3. 满二叉树与完全二叉树图2.45 满二叉树图2.46 完全二叉树2.5.3 二叉树的遍历1. 前序遍历(DLR)图2.47 二叉树2. 中序遍历(LDR)3. 后序遍历(LRD)2.5.4 二叉树的存储结构1. 二叉链表图2.48 二叉树存储结点的结构2. 二叉链表类图2.50 给定二叉树2.5.5 穿线二叉树1. 穿线二叉树的概念2. 中序穿线二叉树图2.51 线索二叉树的存储结点的结构图2.52 中序线索二叉树3. 前序穿线二叉树4. 后序穿线二叉树2.5.6 表达式的线性化1. 有序树的二叉树表示图2.53 表达式a*(b+c/d)+e*h-g*f(s,t,x+y)的表达式树与对应的二叉树2. 表达式的线性化2.6 图2.6.1 图的基本概念图2.54 有向图图2.55 无向图2.6.2 图的存储结构1. 关联矩阵2. 求值矩阵图2.56 城市交通图3. 邻接表图2.57 邻接表中的存储结点结构图2.58 有值图图2.59 有值图的邻接表表示4. 邻接多重表图2.60 邻接多重表中的结点结构2.6.3 图的遍历1. 纵向优先搜索法2. 横向优先搜索法2.6.4 图邻接表类1. 由键盘输入生成图邻接表2. 输出图邻接表3. 纵向优先搜索法遍历图4. 横向优先搜索法遍历图习题。

第二章基本数据结构及其运算

第二章基本数据结构及其运算

用这种方法查找,每次比较都可抛弃子表一半的 元素,查找效率较高 从该例可看出,数据元素在表中的排列顺序对查 找效率有很大的影响
例2、学生情况登记表信息查询 成绩在90分及以上的学生情况登记表
学 号 970156 970157 970158 970159 970160 970161 970162 970163 970164 … 姓 名 性 别 年龄 20 张小明 男 19 李小青 女 19 赵 凯 男 21 李启明 男 18 刘 华 女 19 曾小波 女 18 张 军 男 20 王 伟 男 19 胡 涛 男 … … … 成绩 86 83 70 91 78 90 80 65 95 … 学 号 姓 名 性别 男 女 男 女 年龄 21 19 19 17 成绩 91 90 95 93 970159 李启明 970161 曾小波 970164 胡 970168 梅 涛 玲
数据结构主要研究和讨论三方面问题:
1、数据元素之间的固有逻辑关系,称为数据的逻辑结构 2、数据元素及其关系在计算机中的存储方式,称为数据的 物理结构或存储结构
3、施加在数据结构上的操作,称为数据结构的运算。数据处 理的本质就是对数据结构施加各种运算,常见的运算有:查找、 排序、插入、删除等。
主要目的是提高数据处理的效率:
§2.1.3 数据结构的图形表示
D中的数据元素用中间标有元素值的方框表示, 称为数据结点(结点);R中的关系用一条有向线段 从前件结点指向后件结点。
例:设数据元素的集合为D = {di |1≤ i≤ 7的整数},画 出对应于下列关系所构成的数据结构的图形
①、R1={(d1,d3),(d1,d7),(d4,d5),(d3,d6),(d2,d4)} ②、R2={(di,dj)|i+j=5} ③、R3={(d2,d3)(d3,d1),(d1,d4),(d4,d6),d6,d5),(d5,d7)}

计算机软件技术基础第2节2

计算机软件技术基础第2节2
19
2.5 数 组
主要讨论二维数组,是数学中的矩阵在程序设 计语言中的表示。
程序设计语言中的数组在计算机中是顺序存储 的。当矩阵中的绝大局部元素为零时,采用一 般的二维数组存储方式会浪费大量的存储空间, 同时也做了大量不必要的运算。
主要讨论:①一般二维数组的顺序存储构造; ②当矩阵中绝大局部为零元素时的表示方法。
4
索引存储的概念
实现索引存储需要解决的两个问题 如何划分线性表 确定具体的索引方式
5
索引存储的概念
线性表的划分 索引函数 j=g(ki),i=1,2,…,n;j=1,2,…,m 用来描述线性表中各节点的性质,将线性表分 为多个子表
将问题规模减小
6
索引存储的概念
将线性表划分成m个子表的根本方法: 对线性表中的每个结点元素的关键字计算其

ann
第1行元素 第2行元素
第3行元素
第n行元素
一维数组B 的顺序存储 空间
39
规那么矩阵的压缩
a11
A
a21
0
an1
an2
ann
nn
说明:以列为主存储下 三角矩阵中的所有非零 元素。
2021/5/24
第1列元素
a11 a21 a31 ∶
第2列元素
an1 a22 a32 ∶
一维数组B an2
32
数组的顺序存储构造
第1列 元素
4 1 1 2 A34 6 3 5 2
5 6 1 4 34
第2列 元素
第3列 元素
第4列 元素
以列为主的数组的顺序存储
4 6 5 1 3 -6 1 5 -1 2 2 4
33
数组的顺序存储构造

计算机软件基础(二)习题解解答

计算机软件基础(二)习题解解答

算机软件基础习题解答第一章 概论(答案参阅)1、 P12、P23、P44、P45、P56、P27、P78、P59、P7 2、第二章 数据结构 一、 选择题1. B P18(2)2. D P16(5)3. D P26 (40 )4. C P23 ( 1 )5. D P30 (3) 即:98+ ((8-1)×8 +(3-1))×5=3886. C P35(2)7. B P34(3)8. A P35(45)9. B P36 (7) 10. C P36 (48) 11. A P38(5) 12. B P45(41) 二、 填空题1. 数据元素 数、字符串、一个或多个数据项 P9(40)2. 顺序存储结构 P11(9)3. 随机 P15 (48) 顺序 P16(40)4. 栈顶 栈底 P22(38)5. 队列 P256. 行下标 列下标 该元素的值7. 2i-1 P358. 右孩子 P38(40) 9. 线性查找 P45(30)10. n 22()即探测总次数为1+2+3+ … +n-111. Log 2 256=8 三、 判断题1. B2. B3. B4. B5. B6. A7. A8. A9. B 四、 问答题 1. P 112. 对一个已建立好的单链表(表头指针为head ),编写一算法计算该链表中的结点个数。

(要求给出结点的结构描述) 统计结点个数int ListLength(LinkList head) {int i=0;LinkList p=head->next; While (p) {i++;p=p->next; }return i; }3. 给定一个n 项元素的线性表V ,写一个过程将元素排列的次序颠倒过来, # define n 100 Int V[n];Int k=0,front=1,rear=n;Scanf(“%d”,&V[n]);While(front!=rear);V[0]=V[front];V[front]=V[rear];V[rear]=V[0];frout++;rear--;4.试设计实现在单链表中删去值相同的多余结点的算法del(LinkList *head){ //删除单链表中值相同的多余结点LinkList *p, *s, *q;p=head->next;while(p!=NULL && p->next!=NULL){ s=p; //s指向要删除结点的前趋q=p->next;while (q!=NULL){ if (q->data= =p->data)} //查找值相同的结点并删除{ s->next=q->next;free(q);q=s->next;}else{ s=q;q=q->next;}}p=p->next;}}5. P206.设计计算线性链表长度的算法int Listlength(Linklist L) //求链表长度{Linklist p;int j=0;p=L;while(p->next!=NULL){++j;p=p->next;}return j;}7. 设一线性链表,其结点值为正整数序列,且按值从小到大链接,设计算法,将此线性链表分成两个纯属链表,其中一个结点值均为奇数,而另一个均为偶数,且也是从小到大链接。

计算机软件技术02第二章 基本数据结构及其运算_作业02

计算机软件技术02第二章 基本数据结构及其运算_作业02

-6
18
19
-37
-41
HEAD
-41
-37
-6
18
19
HEAD
步骤分析
-6 18 19 -37 -41
HEAD #include <iostream> using namespace std; struct node //循环链表结点类型 循环链表结点类型 { int d; node *next; };
0 35 0 0 0 0 0 0 0 23 ⑵ 17 0 0 0 0 A= 0 0 0 0 0 0 21 0 − 12 0 0 0 0 0 0 − 9 0 0 0 15 6×5
7 1 2 3 5 5 7 7
-6
18
19
-37
-41
HEAD
kk
k
jk
kk=head->next; k=kk->next; while (k!=head) { j=k->next; //结点值为负,将该结点链接到链头 结点值为负, 结点值为负 if (k->d<0) { k->next=head->next; head->next=k; kk->next=j; }
• 2.17(第154页) 试写出上题(2.16第⑵题)中的稀 ( 页 试写出上题( 第 疏矩阵的POS与NUM向量。 0 0 − 6 0 − 1 0 向量。 疏矩阵的 与 向量 0 4 0 0 0 0 4 6 5 1 3 − 6 8 0 0 0 0 0 1 5 − 1 0 0 0 9 0 0 4×6 2 2 4
TBC
-6
18
19

基本数据结构及其运算习题

基本数据结构及其运算习题

第二章基本数据结构及其运算一、单项选择题1.数据的基本单位是( B )A.数据B.数据元素C.数据项D.数据结构2.在数据结构中,构成数据元素的最小单位称为(D)A.字符B.关键字C.数据元素D.数据项3.数据在计算机内的存储形式称为数据的( D )A.算法描述B.数据类型C.逻辑结构D.物理结构4.数据的逻辑结构可分为(C)A.顺序结构和链式结构B.简单结构和复杂结构C.线性结构和非线性结构D.动态结构和静态结构5.顺序表中的每个元素占m个字节,第一个元素的存储地址为LOC(1),则任意1个元素i的地址为( B )A.LOC(1)+i*m B.LOC(1)+(i-1)*mC.LCO(1)+(i+1)*m D.(i-1)*m 6.线性表若采用链表存储,其(D)A.所有结点的地址必须是连续的B.部分结点的地址必须是连续的C.所有结点的地址一定不连续D.所有结点的地址连续、不连续都可以7.线性表在采用链式存储时,其地址( C )A.必须是连续的B.一定是不连续的C.连续不连续都可以D.部分是连续的8.下列不属于线性结构的是( C )。

A.单链表B.队列C.二叉树D.数组9.链表不具有的特点是( A)A.可随机访问任一元素B.插入删除不需要移动元素C.不必事先估计存储空间D.所需空间与线性表的长度成正比10.数据结构反映了数据元素之间的结构关系,链表是一种( D)。

A.顺序存储线性表B.非顺序存储非线性表C.顺序存储非线性表D.非顺序存储线性表11.在单链表表示的线性表中,可以从( A )。

A.第一个结点访问到所有结点B.某个结点访问到所有结点C.某个结点访问到该结点的所有前趋结点D.最后一个结点访问到所有结点12.在一个单链表中,已知指针q所指向的结点是指针p所指向的结点的前驱结点,若在指针q和p所指向的两个结点之间插入指针s指向的结点,则执行( C )。

A.s->link=p->link; p->link=s;B.p->link=s->link; s->link=p;C.q->link=s; s->link=p;D.p->link=s; s->link=q;13.长度为n的顺序存储的线性表,设在任何位置上删除一个元素的概率相等,则删除一个元素时平均要移动的元素个数是(A)A.(n-1)/2 B.n/2 C.n-1D.n+114.设长度大于1带头结点的循环单链表head的尾结点由rear 指向,则head和rear满足关系(B)A.rear->link= =NULLB.rear= =head->linkC..rear->link= =headD.rear= =head15.在链式存储的线性表中,插入一个元素时(D)A.需要移动元素和修改指针B.不需要移动元素和修改指针C.需要移动元素,但不需要修改指针D.不需要移动元素,但需要修改指针16.设循环队列中有m个单元,队列满的条件是( A ) A.rear=front B.(rear+1)%m=frontC.rear%m=front D.rear+1=front17.栈和队列都是( C)。

计算机软件技术02第二章 基本数据结构及其运算_作业03

计算机软件技术02第二章 基本数据结构及其运算_作业03
第二章作业第三部分219写出下列各算术表达式的表达式树再分别转化成二叉树最后分别写出其波兰表达式
第二章 作业 第三部分
• 2.19 写出下列各算术表达式的表达式树,再分 写出下列各算术表达式的表达式树, 别转化成二叉树,最后分别写出其波兰表达式。 别转化成二叉树,最后分别写出其波兰表达式。 ⑴ (a − b) /(c × d + s ) + e × g / f ( x + y × z , w , v ) − h × ( t + q )
4 ^
End
A
C
E
G
2.22(第154页) 设一棵完全二叉树具有 ( 个结点。 页 设一棵完全二叉树具有1000个结点。 个结点 问该完全二叉树有多少个叶子结点? 问该完全二叉树有多少个叶子结点?有多少个度为 2的结点?有多少个度为 的结点?若完全二叉树有 的结点? 的结点? 的结点 有多少个度为1的结点 1001个结点,在回答上述问题,并说明理由。 个结点, 个结点 在回答上述问题,并说明理由。
n = n0 + n1 + n2 + n3 + n4 = (分支数 ) + 1
n1 + n2 + n3 + n4 = 8
• 叶子结点数为: n (n n n n ) 16 8 8 叶子结点数为: − 1+ 2+ 3+ 4 = − =
• 2.25 若图有 个结点,并用关联矩阵表示,则第 若图有n个结点 并用关联矩阵表示, 个结点, k个结点的度为多少? 个结点的度为多少? 个结点的度为多少 1 A
2
3
Hale Waihona Puke 0 1 R = 1 0 0
顶点的度= 顶点的度

计算机软件技术基础复习要点概要

计算机软件技术基础复习要点概要

计算机软件技术基础复习要点第二章基本数据结构及其运算1.数据结构的分类,线性结构与非线性结构,线型结构又名线性表。

P202. 栈的定义:栈是限定在一端进行插入与删除的线性表。

对栈的插入与删除运算不需要移动表中其它数据元素。

“先进后出”或“后进先出” 。

P314. 队列:定义,队列的操作原则:先进先出。

P405. 带链的栈的类实现(代码。

P616. 循环链表的类的实现(代码 P677. 稀疏矩阵的三列二维数组的表示。

给出一个稀疏阵,能写稀疏矩阵中的每个非零元素的三元组表示。

P86-878. 二叉树的性质 1、性质 2. P1159. 二叉树的遍历分三种:前序遍历、中序遍历、后序遍历。

P118.10. 图的基本概念。

P13711. 图的遍历方法有:纵向优先搜索发和法和横向优先搜索法。

第四章资源管理技术1. 第一个分时操作系统是 UNIX 操作系统。

P2302. 进程与程序的区别是:静态和动态、…… P12352. 进程的组成:数据、程序、进程控制块。

P2353. 进程的三种状态是什么?怎么互相转换的。

P236运行转就绪, 运行转等待、就绪转运行、等待转就绪,各自转换的原因。

单 CPU 情况下,任意时刻,处于运行状态的进程只有一个。

一个进程对应一个进程控制块,每个进程控制块记录进程的状态、名称等信息,每个进程控制块应是互不相同的。

4. 创建原语 :在实际系统中创建一个进程有两种方法:一是由操作系统建立, 0#进程就是由操作系统建立的; 二是由其他进程创建一个新的进程。

基本操作都是一样的。

创建进程原语总是先为新建进程申请一空白 PCB ,并为之分配唯一的数字表示符,使之获得 PCB 的内部名称, 若该进程所对应的程序不在内存中, 则应将它从外存储器调入内存, 并将该进程有关信息填入 PCB 中,然后置该进程为就绪状态,并将它排入就绪队列和进程家族队列中。

5. 何为死锁,发生死锁的四个必要条件。

计算机软件技术基础所有题目答案自学.doc

计算机软件技术基础所有题目答案自学.doc

数据结构习题答案 2 第一节概论 2 第二节线性表 5 第三节栈和队列16 第五节树19 第七节查找25 第八节排序29 操作系统练习题参考答案32数据结构习题答案第一节概论一、选择题1.要求同一逻辑结构的所有数据元素具有相同的特性,这意味着( )。

A.数据元素具有同一的特点~B.不仅数据元素包含的数据项的个数要相同,而且对应数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等2.数据结构是一门研究非数值计算的程序设计问题中计算机的( (1) )以及它们之间的( (2) )和运算的学科。

(1) ~A.操作对象 B.计算方法 C.逻辑存储 D.数据映像(2) A.结构~B.关系 C.运算 D.算法3.数据结构被形式地定义为(D,R),其中D是( (1) )的有限集合,R是D上( (2) )的有限集合。

(1) A.算法~B.数据元素 C.数据操作 D.逻辑结构(2)A.操作 B.映像 C.存储~D.关系4.在数据结构中,从逻辑上可以把数据结构分为( )。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构~C.线性结构和非线性结构 D.内部结构和外部结构5.线性表的顺序存储结构是一种( )的存储结构。

~A.随机存取 B.顺序存取 C.索引存取 D.Hash存取6.算法分析的目的是( )。

A.找出数据结构的合理性 B.研究算法中的输入和输出的关系~C.分析算法的效率以求改进D.分析算法的易懂性和文档性7.计算机算法指的是( (1) ),它必须具备输入、输出和( (2) )等五个特征。

(1) A.计算方法 B.排序方法~C.解决某一问题的有限运算序列 D.调度方法(2) A.可行性、可移植性和可扩充性~B.可行性、确定性和有穷性 C.确定性,有穷性和稳定性 D.易读性、稳定性和安全性8.线性表若采用链表存储结构,要求内存中可用存储单元的地址( )。

A.必须是连续的 B.部分必须是连续的 C.一定是不连续的~D.连续不连续都可以9.在以下的叙述中,正确的是( )。

计算机软件技术基础所有题目答案-自学.doc

计算机软件技术基础所有题目答案-自学.doc

数据结构习题答案 2 第一节概论 2 第二节线性表 5 第三节栈和队列16 第五节树19 第七节查找25 第八节排序29 操作系统练习题参考答案32数据结构习题答案第一节概论一、选择题1.要求同一逻辑结构的所有数据元素具有相同的特性,这意味着( )。

A.数据元素具有同一的特点~B.不仅数据元素包含的数据项的个数要相同,而且对应数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等2.数据结构是一门研究非数值计算的程序设计问题中计算机的( (1) )以及它们之间的( (2) )和运算的学科。

(1) ~A.操作对象 B.计算方法 C.逻辑存储 D.数据映像(2) A.结构~B.关系 C.运算 D.算法3.数据结构被形式地定义为(D,R),其中D是( (1) )的有限集合,R是D上( (2) )的有限集合。

(1) A.算法~B.数据元素 C.数据操作 D.逻辑结构(2)A.操作 B.映像 C.存储~D.关系4.在数据结构中,从逻辑上可以把数据结构分为( )。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构~C.线性结构和非线性结构 D.内部结构和外部结构5.线性表的顺序存储结构是一种( )的存储结构。

~A.随机存取 B.顺序存取 C.索引存取 D.Hash存取6.算法分析的目的是( )。

A.找出数据结构的合理性 B.研究算法中的输入和输出的关系~C.分析算法的效率以求改进D.分析算法的易懂性和文档性7.计算机算法指的是( (1) ),它必须具备输入、输出和( (2) )等五个特征。

(1) A.计算方法 B.排序方法~C.解决某一问题的有限运算序列 D.调度方法(2) A.可行性、可移植性和可扩充性~B.可行性、确定性和有穷性 C.确定性,有穷性和稳定性 D.易读性、稳定性和安全性8.线性表若采用链表存储结构,要求内存中可用存储单元的地址( )。

A.必须是连续的 B.部分必须是连续的 C.一定是不连续的~D.连续不连续都可以9.在以下的叙述中,正确的是( )。

计算机软件技术基础所有题目答案自学.doc

计算机软件技术基础所有题目答案自学.doc

数据结构习题答案 2 第一节概论 2 第二节线性表 5 第三节栈和队列16 第五节树19 第七节查找25 第八节排序29 操作系统练习题参考答案32数据结构习题答案第一节概论一、选择题1.要求同一逻辑结构的所有数据元素具有相同的特性,这意味着( )。

A.数据元素具有同一的特点~B.不仅数据元素包含的数据项的个数要相同,而且对应数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等2.数据结构是一门研究非数值计算的程序设计问题中计算机的( (1) )以及它们之间的( (2) )和运算的学科。

(1) ~A.操作对象 B.计算方法 C.逻辑存储 D.数据映像(2) A.结构~B.关系 C.运算 D.算法3.数据结构被形式地定义为(D,R),其中D是( (1) )的有限集合,R是D上( (2) )的有限集合。

(1) A.算法~B.数据元素 C.数据操作 D.逻辑结构(2)A.操作 B.映像 C.存储~D.关系4.在数据结构中,从逻辑上可以把数据结构分为( )。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构~C.线性结构和非线性结构 D.内部结构和外部结构5.线性表的顺序存储结构是一种( )的存储结构。

~A.随机存取 B.顺序存取 C.索引存取 D.Hash存取6.算法分析的目的是( )。

A.找出数据结构的合理性 B.研究算法中的输入和输出的关系~C.分析算法的效率以求改进D.分析算法的易懂性和文档性7.计算机算法指的是( (1) ),它必须具备输入、输出和( (2) )等五个特征。

(1) A.计算方法 B.排序方法~C.解决某一问题的有限运算序列 D.调度方法(2) A.可行性、可移植性和可扩充性~B.可行性、确定性和有穷性 C.确定性,有穷性和稳定性 D.易读性、稳定性和安全性8.线性表若采用链表存储结构,要求内存中可用存储单元的地址( )。

A.必须是连续的 B.部分必须是连续的 C.一定是不连续的~D.连续不连续都可以9.在以下的叙述中,正确的是( )。

计算机软件技术基础知识点储备

计算机软件技术基础知识点储备

第一章:概述1、程序=算法+数据结构2、算法的几个基本特征:能行性确定性有穷性拥有足够的情报3、算法的复杂度主要包括:时间复杂度和空间复杂度第二章:数据结构1、逻辑结构:数据集合中各数据元素之间所固有的逻辑关系(集合结构、线性结构、树形结构、图状结构),可以看作是从具体问题抽象出来的数据模型。

2、物理(存储)结构:在对数据进行处理时,各数据元素在计算机中的存储关系,可分为以下四种:顺序存储结构(存储空间连续)、链式存储结构、索引结构、散列结构3、数据结构的运算是指对数据结构中的结点进行操作的集合,包括插入、删除、更新、检索、排序等。

4、数据元素是数据的基本单位5、有时数据元素可由若干个数据项(数据的属性)组成,在这种情况下,数据项组成的数据元素称为记录,数据项是具有独立含义的最小标识单位,不可分割6、顺序存储结构:通常定义一维数组来表示线性表的顺序存储空间7、顺序表的插入异常处理:(m为线性表的空间大小,n为线性表的长度<=m,插入的位置为i,i表示在第i个元素之前插入)⑴当存储空间已满(即n=m)时为上溢错误,不能进行插入,算法结束;⑵当i>n时,认为在最后一个元素之后(即第n+1个元素之前)插入;⑶当i<1时,认为在第1个元素之前插入函数的代码实现:void insert(int *v,int m,int n,int i, int b){int k;if(n==m) cout<<”出现上溢错误!”<<endl;if(i>n) i=n+1;if(i<1) i=1;for(k=n;k>=i;k--){v[k]=v[k-1];v[i-1]=b;n=n+1;}}8、顺序表的删除异常处理:⑴当线性表为空(即n=0)时为下溢错误,不能进行删除,算法结束;⑵当i<1或i>n时,认为不存在该元素,不进行删除。

函数的代码实现:void delete(int *v, int m,int n, int i){int k;if(n==0) cout<<”出现下溢错误!”<<endl;if((i<1)||(i>n)) cout<<”线性表里不存在该元素,不进行删除操作!”<<endl; for(k=i;k<=n;k++)v[k-1]=v[k];n=n-1;}9、栈(相当于一个井)的相关概念⑴先进后出(后进先出)⑵栈顶允许插入与删除⑶栈底不允许插入与删除10、队列(相对于排队买饭)的相关概念⑴先进先出⑵队尾允许插入⑶对头允许删除11、链式存储每个结点由两部分组成:数据域和指针域12、单链表的插入函数实现在包含元素x的结点前插入新元素bvoid insert(int x,int b){node *p,*q;p=new node;p->number=b;if(head==NULL){head=p;p->next=NULL;}if(head->number==x){P->next=head;Head=p;}q=head;while((q->next!=NULL)&&(((q->next)->number)!=x)) q=q->next;p->next=q->next;q->next=p;}13、单链表的删除函数实现删除包换元素x的结点void delete(int x){node *p,*q;if(head==NULL) cout<<”没有要删除的元素!”<<endl;if((head->number)==x){p=head->next;delete head;head=p;}q= head;while(((q->next)!=NULL)&&(((q->next)->number)!=x))q=q->next;if(q->next==NULL) cout<<”没有要删除的元素!”<<endl; p=q->next;q->next=p->next;delete p;}14、循环链表的插入函数实现在包含元素x的结点前插入新元素bvoid insert(int x,int b){node *p,*q;p=new code;p->number=b;q=head;while((q->next!=NULL)&&(((q->next)->numbe)r!=x))q=q->next;p->next=q->next;q->next=p;}15、循环链表的删除函数实现删除包含元素x 的结点void delete(int x){node *p,*q;q=head;while((q->next!=NULL)&&(((q->next)->number)!=x))q=q->next;if(q->next==head) cout<<”没有要删除的元素”<<endl;p=q->next;q->next=p->next;delete p;}16、单链表与循环链表的区别⑴单链表的头指针指向线性表第一个元素的结点;而循环链表的头指针指向表头结点,表头结点的指针域指向链表的第一个结点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2 3 C
B 4
0 1 R= 0 0
D
n
1 0 0 0 1 1 0 0 0 0 0 0 4×4
顶点的度=顶点出度 顶点入度 顶点的度 顶点出度+顶点入度 顶点出度
∑R
k =1
ik
+ ∑ Rki
k =1
n
• 2.25 若图有 个结点,并用关联矩阵表示,则第 若图有n个结点 并用关联矩阵表示, 个结点, k个结点的度为多少? 个结点的度为多少? 个结点的度为多少 1
1 2 4 5 6 3 7 8 4 2 5 6 1 3 7
8 9 10 11 12
9 10 11 12 13
• 补充习题 :给定权值{4,5,7,10,12,17}, 补充习题01:给定权值 , , , , , , 构造一棵哈( 夫曼树; ① 构造一棵哈(赫)夫曼树; 求其带权路径长度。 ② 求其带权路径长度。 55 22 10 12 9 4 5 16 7 33 17
第二章 作业 第三部分
• 2.19 写出下列各算术表达式的表达式树,再分 写出下列各算术表达式的表达式树, 别转化成二叉树,最后分别写出其波兰表达式。 别转化成二叉树,最后分别写出其波兰表达式。 ⑴ (a − b) /(c × d + s ) + e × g / f ( x + y × z , w , v ) − h × ( t + q )
• 补充习题 :已知图G的邻接表如下图所示,求: 补充习题02:已知图 的邻接表如下图所示 的邻接表如下图所示, 从顶点v1出发的深度优先搜索序列 出发的深度优先搜索序列; ①从顶点 出发的深度优先搜索序列;②从顶点 v1出发的广度优先搜索序列。 出发的广度优先搜索序列。 出发的广度优先搜索序列 1 2 3 4 ^ 5 2 3 5 2 5 5 ^ 4 ^ 3 4 ^
A
C
E
G
2.22(第154页) 设一棵完全二叉树具有 ( 个结点。 页 设一棵完全二叉树具有1000个结点。 个结点 问该完全二叉树有多少个叶子结点? 问该完全二叉树有多少个叶子结点?有多少个度为 2的结点?有多少个度为 的结点?若完全二叉树有 的结点? 的结点? 的结点 有多少个度为1的结点 1001个结点,在回答上述问题,并说明理由。 个结点, 个结点 在回答上述问题,并说明理由。
ab − cd × s + / egxyz × + wvf × htq + × − +
• 2.20 设树 的度为 ,其中度为 ,2,3,4的结点 设树T的度为 的度为4,其中度为1, , , 的结点 个数分别为4, , , 。 中有多少个叶子结点? 个数分别为 ,2,1,1。问T中有多少个叶子结点? 中有多少个叶子结点 • 树T中分支总数: 中分支总数: 中分支总数 1× n1 + 2× n2 + 3× n3 + 4× n4 = 4×1 + 2× 2 + 1× 3 + 1× 4 = 15 • 树T中的总结点数为: 中的总结点数为: 中的总结点数为 • 非叶子结点总数: 非叶子结点总数:
2
3
0 1 R = 1 0 0
顶点的度= 顶点的度
1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 5×5
4
5
∑R
k4页) 已知某二叉树的前序序列为 ( 页 DBACFEG,中序序列为 ,中序序列为ABCDEFG。试画出 。 该二叉树,并写出该二叉树的后序序列。 该二叉树,并写出该二叉树的后序序列。 D ACBEGFD B F
n = n0 + n1 + n2 + n3 + n4 = (分支数 ) + 1
n1 + n2 + n3 + n4 = 8
• 叶子结点数为: n (n n n n ) 16 8 8 叶子结点数为: − 1+ 2+ 3+ 4 = − =
• 2.25 若图有 个结点,并用关联矩阵表示,则第 若图有n个结点 并用关联矩阵表示, 个结点, k个结点的度为多少? 个结点的度为多少? 个结点的度为多少 1 A
4 ^
End
相关文档
最新文档