华南理工大学网络教育学院 数据结构同步练习册答案

合集下载

数据结构综合练习及参考答案

数据结构综合练习及参考答案

《数据结构》(01111、01211)作业题(一)一、判断题(下列各题,你认为正确的,请在前面的括号内打√,错误的打×。

每题1分,共10分)1、(√)2、(√)3、(√)4、(√)5、(√)6、(╳)7、(√)8、(√)9、(╳)10、(√)(√)1. 数据的存贮结构是数据的逻辑结构的存贮映象。

(√)2. 用顺序表来存储线性表时,不需要另外开辟空间来保存数据元素之间的相互关系。

(√)3. 非线性结构中,至少存在一个元素不止一个直接前趋或不止一个直接后继。

(√)4. 树的最大特点是层次结构。

(√)5. 队列的特点是先进先出。

(╳)6. 图的最小生成树是唯一的。

(√)7. 线性表是广义表的特殊形式。

(√)8. 后序序列和中序序列能唯一确定一棵二叉树。

(╳)9. 散列表是一种链式存贮结构。

(√)10. 快速排序并非在任何情况下都比其它排序方法速度快。

二、填空题(每空2分,共20分)1.数据的存贮结构的四种形式为存贮、存贮、存贮和存贮。

2.所有插入和删除都在表的一端进行的线性表称为。

3.n个结点的完全二叉树,其深度h= 。

4.对于顺序循环队列Q[M],下标从0到M-1,头尾指针分别为F和R,入队时,队尾指针循环加1可表示为R= 。

5.散列法既是一种查找方法,又是一种方法。

6.n个顶点的有向完全图具有条弧。

7.n个元素的顺序查找的平均查找长度为。

三、单选题(本题的每一备选答案中,只有一个是正确的,请把你认为正确的答案的题号填入题干的括号内,多选不给分,每小题3分,共15分)。

1.若进栈序列为1,2,3,4,则不可能得到的出栈序列是()(1)3,2,1,4 (2)3,2,4,1 (3)4,2,3,1 (4) 2,3,4,12.对于下列二叉树,其后序序列为()(1)ABDECFG (2)DBEAFCG (3)DEBFGCA (4)GFCEBDA3.对于下列AOV网,不能出现的拓扑序列为()(1)1 2 3 4 5 (2)1 2 4 3 5 (3)2 4 1 3 5 (4)2 1 4 3 5AB C DEFG题三2图13542题三、3图4.深度为k 的完全二叉树所含叶结点的个数最多为 ( ) (1)2k (2) 2k-1 (3) k (4) 2k 5.衡量查找算法效率的主要标准是 ( ) (1) 元素个数 (2) 所需的存贮量 (3) 平均查找长度 (4) 算法难易程度 四、应用题(25分)1.将下列森林转化为二叉树。

华南理工大学网络教育学院数据库同步练习册答案

华南理工大学网络教育学院数据库同步练习册答案

华南理工大学网络教育学院数据库同步练习册答案答案:第一章1.A2.A3.D4.A5.C6.A7.数据库管理系统(DBMS)、数据库管理员(DBA)8. 概念模式或逻辑模式9.人工管理、数据库10.概念模式第二章1.B2.C3.C4.C5.A6.A7.B8.109. 课程名,课程号10. 答:外键的充要条件:1) FK和K的取值域是一样的;2) 对于R中任何一个元组t,要么t[FK]上的值为null,要么存在R'中的元组t',使得t[FK]=t'[K]。

作用:形成关系(表)与关系(表)之间的联系11. 答:每个关系应有一个主键,每个元组的主键的应是唯一的。

这就是实体完整性约束。

如关系:student(学号,姓名,性别)中,有一个主键“学号”,每条学生记录的学号都不同,这是就关系student中的实体完整性约束。

12.R4为:ABa1b1a2b113.ПENO(EPM σmanager=’001’(DEPT))= ПENO(σmanager=’001’(EPM╳DEPT))SELECT ENO FROM EMP, DEPT WHERE DEPT.MANAGER=‘001’ AND EMP.DNO=DEPT.DNO14. 答:1.2.客户(身份证号,客户姓名,联系电话,地址,邮政编码)主键:身份证号业务员(业务员代号,业务员姓名,电话号码)主键:业务员代号房间(房间号,居室数,使用面积,建筑面积,单位,金额,合同号)主键:房间号外键:合同号合同(合同号,日期,付款方式,总金额,身份证号,业务员代号)主键:合同号外键:身份证号,业务员代号15.文本框: 客户客户业务员房间购房合同经办出售111mmm司机(驾照号,姓名,地址,邮编,电话)PK=驾照号机动车(牌照号,型号,制造厂,生产日期)PK=牌照号警察(警察编号,姓名)PK=警察编号处罚通知(编号,日期,时间,地点,驾照号,牌照号,警告,罚款,暂扣,警察编号)PK=编号FK=驾照号,牌照号,警察编号第三章1.B2.A3.B4.A5.B6.B7.D8.grant revoke9. (1)select sname from student,course,sc where credit>3 and grade<70 andstudent.sno=sc.sno and /doc/3c2526876.html,o=http://www.doczj .com/doc/3c2526876.html,o(2) ПSNAME(σs.sno=sc.sno and/doc/3c2526876.html,o=http://www.doczj .com/doc/3c2526876.html,o and credit>3 and grade<70 (STUDENT×COURSE×SC))(3) select sname,/doc/3c2526876.html,o,credit from student, course ,sc where grade is nulland student.sno=sc.sno and /doc/3c2526876.html,o=http://www.doczj .com/doc/3c2526876.html,o(4) Select cno,count(sno),max(grade),min(grade), avg(grade) from sc wheregroup by cno order by cno(5) 二步:第一步:CREATE TABLE FGRADE(SNAME VARCHAR(8) NOT NULL,CNO CHAR(6) NOT NULL,文本框: 司机司机机动车警察下发处罚通知包含开出11mmm1GRADE DEC(4,1) DEFAULT NULL);第二步:INSERT INTO FGRADE SELECT SNAME,CNO,GRADE FROM STUDENT,SC WHERESTUDENT.SNO=SC.SNO AND SEX=‘女’;10.(1) select ename,dname from emp,dept where salary>=600 and emp.dno=dept.dno(2)select dname from emp,dept where eno=’001’and emp.dno=dept.dnoПdname(σeno=’001’and emp.dno=dept.dno (emp×dept)) 或者Пdname(emp eno=’001’dept)(3) update emp set salary=salary*1.1 where salary<600 and dno in (select dnofrom dept where dname=’销售部’)(4) 查询编号为“001” 的部门经理的职工号。

2020-华南理工大学网络教育计算机基础 随堂练习及答案

2020-华南理工大学网络教育计算机基础 随堂练习及答案

第1章计算机基础知识·1.1计算机的基本概念1.(单选题)世界上第一台电子计算机诞生于()年。

A.1941年B.1946年C.1949年D.1950年参考答案:B问题解析:计算机是一种能自动运行、具有高速运算能力和信息存储能力、在程序控制下完成信息加工工作的电子设备。

1946年世界第一台电子数字计算机ENIAC(The Electronic Numerical Integrator and Calculator)研制成功。

2.(单选题)计算机中的信息都用()来表示。

A.二进制码B.十进制数C.八进制数D.十六进制数参考答案:A问题解析:计算机体系结构的基本思想可以归纳为:(1)计算机中的程序和数据全部采用二进制数表示。

(2)计算机由输入设备、存储设备、运算器、控制器、输出设备组成。

(3)计算机由存储程序控制完成有关工作。

3.(单选题)从()开始计算机高级程序设计语言广泛应用。

A.第1代计算机B.第2代计算机C.第3代计算机D.第4代计算机参考答案:C问题解析:集成电路计算机时期,计算机的体积明显减小,计算机的运算速度和性能明显提高,出现了计算机通信网络。

这一时期微型计算机诞生,计算机广泛应用于各个领域,采用计算机高级程序语言设计程序。

4.(单选题)目前微型计算机采用的电子元件是()。

A.电子管B.晶体管C.集成电路D.大规模集成电路参考答案:D问题解析:按照计算机电子元件的构成,计算机的发展经历了以下阶段:(1)第一代计算机,电子管计算机时期。

(2)第二代计算机,晶体管计算机时期。

(3)第三代计算机,集成电路计算机时期。

(4)第四代计算机,大规模或超大规模集成电路计算机时期。

5.(单选题)世界上第一台电子数字计算机采用的主要逻辑部件是()。

A.电子管B.晶体管C.继电器D.光电管参考答案:A问题解析:第一代计算机电子管计算机。

6.(单选题)计算机能直接执行()。

A.高级语言编写的源程序B.机器语言程序C.英语程序D.十进制程序参考答案:B问题解析:计算机采用机器语言(二进制代码方式)和汇编语言(助记符)方式设计程序。

数据结构(含课程设计)·随堂练习2019春华南理工大学网络教育答案

数据结构(含课程设计)·随堂练习2019春华南理工大学网络教育答案

数据结构(含课程设计),随堂第一章绪论1.(单选题) 计算机所处理的数据一般具备某种内在联系,这是指()。

A、数据和数据之间存在某种关系 B.元素和元素之间存在某种关系C元素内部具有某种结构 D.数据项和数据项之间存在某种关系答题: A. B. C. D. (已提交)参考答案:B问题解析:2.(单选题) 在数据结构中,与所使用计算机无关的是数据的()结构.A.逻辑B.存储C.逻辑和存储D. 物理答题: A. B. C. D. (已提交)参考答案:A问题解析:3.(单选题) 数据结构在计算机中的表示称为数据的()A.存储结构B.抽象数据类型C.顺序结构D.逻辑结构答题: A. B. C. D. (已提交)参考答案:A问题解析:4.(单选题) 在计算机中存储数据时,通常不仅要存储各数据元素的值,还要存储().A.数据的处理方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法答题: A. B. C. D. (已提交)参考答案:C问题解析:5.(单选题) 在计算机的存储器中表示数据时,逻辑上相邻的两个元素对应的物理地址也是相邻的,这种存储结构称为()A.逻辑结构B.顺序存储结构C.链式存储结构D.以上都正确答题: A. B. C. D. (已提交)参考答案:B问题解析:6.(单选题) 当数据采用链式存储结构时,要求().A.每个结点占用一片连续的存储区域B.所有结点占用一片连续的存储区域C结点的最后一个数据域是指针类型D.每个结点有多少个后继就设多少个指针域答题: A. B. C. D. (已提交)参考答案:A问题解析:7.(单选题) 以下关于算法的说法正确的是().A.算法最终必须由计算机程序实现B.算法等同于程序C算法的可行性是指指令不能有二义性D.以上都是错误的答题: A. B. C. D. (已提交)参考答案:D问题解析:8.(单选题) 算法的时间复杂度与()有关.A问题规模 B.计算机硬件性能C编译程序质量 D.程序设计语言答题: A. B. C. D. (已提交)参考答案:A问题解析:9.(单选题) 算法的主要任务之一是分析()A算法是否具有较好的可读姓,B算法中是否存在语法错误,C算法的功能是否符合设计要求D.算法的执行时间和问题规模之间的关系答题: A. B. C. D. (已提交)参考答案:D问题解析:10.(单选题) 某算法的时间复杂度为O(),表明该算法的()A问题规模是 B执行时间等于C.执行时间与成正比D.问题规模与成正比答题: A. B. C. D. (已提交)参考答案:C问题解析:第二章线性表1.(单选题) 线性表是具有n个()的有限序列.A.关系 B字符C数据元素 D.数据项答题: A. B. C. D. (已提交)参考答案:C问题解析:2.(单选题) 以下关于线性表的叙述中正确的是()A.每个元素都有一个前趋元素和一个后继元素B线性表中至少有一个元素C.线性表中元素的排列次序必须是由小到大或由大到小D.除第一个和最后一个元素外,每个元素都有一个且仅有一个前趋元素和后继元素答题: A. B. C. D. (已提交)参考答案:D问题解析:3.(单选题) 以下关于线性表和有序表的叙述中正确的是()。

数据结构第一次作业华南理工网络教育学院

数据结构第一次作业华南理工网络教育学院

1判断题(√)1. 数据的逻辑结构与数据元素本身的内容和形式无关。

(X)2. 线性表的逻辑顺序与物理顺序总是一致的。

(√)3. 若有一个叶子结点是二叉树中某个子树的前序遍历结果序列的最后一个结点,则它一定是该子树的中序遍历结果序列的最后一个结点。

(X)4. 对于同一组待输入的关键码集合,虽然各关键码的输入次序不同,但得到的二叉搜索树都是相同的。

(√)5. 最优二叉搜索树的任何子树都是最优二叉搜索树。

(√)6. 在二叉搜索树上插入新结点时,不必移动其它结点,仅需改动某个结点的指针,使它由空变为非空即可。

(√)7. 有n(n≥1)个顶点的有向强连通图最少有n条边。

(X)8. 连通分量是无向图中的极小连通子图。

(X)9. 二叉树中任何一个结点的度都是2。

(X)10. 单链表从任何一个结点出发,都能访问到所有结点。

二、单选题1 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动()个元素。

A.8 B. 63.5 C. 63 D. 72 设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,则A[3][3]在(A)位置,(10)表明用10进数表示。

A.692(10) B. 626(10) C. 709(10) D. 724(10)3 N个顶点的连通图至少有(A)条边。

A.N-1 B. N C. N+1 D. 04 下面程序的时间复杂度为(C)。

for(int i=0; i<m;i++)for(int j=0; j<n;j++)a[i][j]=i*j;A.O(m2) B. O(n2) C. O(m*n) D. O(m+n)5 设单链表中结点的结构为(data, link)。

已知指针q所指结点是指针p所指结点的直接前驱,若在*q与*p之间插入结点*s,则应执行下列哪一个操作( B )。

A.s->link=p->link; p->link =s; B. q->link=s; s->link =p;C. p->link=s->link; s->link =q;D. p->link=s; s->link =q;6栈的插入和删除操作在(A)进行。

华南理工网络教育计算机网络随堂练习有答案

华南理工网络教育计算机网络随堂练习有答案

???随堂练习提交截止时间:2018-06-15 23:59:59当前页有10题,你已做10题,已提交10题,其中答对10题。

??A.??B.??C.??D.???A.??B.??C.??D.???A.??B.??C.??D.???A.??B.??C.??D.???A.??B.??C.??D.? ??A.??B.??C.??D.? ??A.??B.??C.??D.???A.??B.??C.??D.???A.??B.??C.??D.???A.??B.??C.??D.????随堂练习提交截止时间:2018-06-15 23:59:59当前页有10题,你已做10题,已提交10题,其中答对10题。

??A.??B.??C.??D.???A.??B.??C.??D.? ??A.??B.??C.??D.? ??A.??B.??C.??D.???A.??B.??C.??D.? ??A.??B.??C.??D.? ??A.??B.??C.??D.? ??A.??B.??C.??D.???A.??B.??C.??D.???A.??B.??C.??D.????随堂练习提交截止时间:2018-06-15 23:59:59当前页有10题,你已做10题,已提交10题,其中答对9题。

??A.??B.??C.??D.???A.??B.??C.??D.???A.??B.??C.??D.? ??A.??B.??C.??D.? ??A.??B.??C.??D.? ??A.??B.??C.??D.???A.??B.??C.??D.? ??A.??B.??C.??D.? ??A.??B.??C.??D.? ??A.??B.??C.??D.?第3章数据链路层???随堂练习提交截止时间:2018-06-15 23:59:59当前页有2题,你已做2题,已提交2题,其中答对2题。

??B.??C.??D.???A.??B.??C.??D.????随堂练习提交截止时间:2018-06-15 23:59:59当前页有3题,你已做3题,已提交3题,其中答对2题。

华南理工大学网络教育学院 数据结构同步练习册答案

华南理工大学网络教育学院  数据结构同步练习册答案

第3章 习题 3
栈、队列
3-1 对于一个适当大小的栈,设输入项序列为 A、B、C、D、E。为得到下列的处理序列,需 要做什么样的运算序列(由 PUSH、POP 组成)?。如果其中某处理序列得不到时,试说明理 由?:① A、B、C、D、E;② B、C、D、E、A;③E、A、B、C、D;④ E、D、C、B、A。 答 : ① PUSH(A), POP(A), PUSH(B), POP(B), PUSH(C), POP(C), PUSH(D), POP(D), PUSH(E), POP(E) ②PUSH(A), PUSH(B), POP(B), PUSH(C), POP(C), PUSH(D), POP(D), PUSH(E), POP(E), POP(A) ③无法实现。 ④PUSH(A), PUSH(B), PUSH(C), PUSH(D), PUSH(E), POP(E), POP(D), POP(C), POP(B), POP(A) 3-2 用链表存放着 n 个字符, 试用算法判断读字符串是否有中心对称关系。 例如 abccba, abcba 都算是中心对称的字符串。要求用尽可能少的时间完成判断(提示:将一半的字符先依次进 栈) 。 答:
2
x++;
由件(x>=(y+1)*(y+1))可知:当 (y+1)*(y+1)刚超过 n 的值时退出循环。
由(y+1)*(y+1)<n 得:y<n^0.5-1 所以,该程序段的执行时间为:向下取整(n^0.5-1) 第2章 习题 2 2.1 描述以下三个概念的区别:头指针、头结点、首元结点。此外叙述有序表的特性何在?, 以及向量与有序表的异同点?,头指针变量和头结点的作用?。并比较顺序存储结构和链式存 储结构的优缺点。 答:首元结点是指链表中的第一个结点,也就是没有直接前驱的那个结点。链表的头指 针是一指向链表开始结点的指引(没有头结点时)。单链表由头指针唯一确定,因此单链表可 以用头指针的名字来命名。头结点是人为地在链表的开始结点之前附加的一个结点。有了头 结点之后.头指针指向头结点,不论链表是否为空,头指针总是非空。而且头指针的设置使 得对链表的第一个位置的操作与在表其他位置上的操作一致(都是在某一结点之后)。 2.2 试写出将链表 L 从某元素 R 处分成两个链表 L 和 K 的算法。R 为 K 表的第一个元素。 答:提示:链表最终将分成两个链表。处理好 L 的尾结点(即 R 的前驱结点) ,和 K 的 头结点(R) 。 void depart_Node(Node *head,int R,Node *head_K) { Node *p=head,*temp; while(p){if(p->data=R)break;temp=p;p=p->next;} temp->next=NUll; head_k->next=p; } 2.3 给定一个 n 项元素的线性表 V,写一个过程,将元素排列的次序颠倒过来。要求占用原 来的空间,并且用顺序表和单表两种方法表示(要求用最少的附加空间来完成) 。 答: 线性表

数据结构(含课程设计)·平时作业2020春华南理工大学网络教育答案

数据结构(含课程设计)·平时作业2020春华南理工大学网络教育答案

数据结构平时作业1.简述单链表设置头结点的主要作用。

答:设置头结点是为了保证处理第一个节点和后面的节点的时候设计的算法相同,实现程序的高效性2. 简述线性表的顺序和链式两种存储结构各自的主要特点。

答:顺序存储结构的主要特点是:(1)结点中只有自身的信息域,没有关联信息域。

因此,顺序存储结构的存储密度大、存储空间利用率高。

更多作业加威(yaoyao9894)(2)通过计算地址直接访问任何数据元素,即可以随机访问。

(3)插入和删除操作会引起大量元素的移动。

链式存储结构的主要特点是:(1)结点除自身的信息域外,还有表示关联信息的指针域。

因此,链式存储结构的存储密度小、存储空间利用率低。

(2)在逻辑上相邻的结点在物理上不必相邻,因此,不可以随机存取,只能顺序存取。

(3)插入和删除操作方便灵活,不必移动结点只需修改结点中的指针域即可。

3. 说明在线性表的链式存储结构中,试述头结点,首元结点,头指针这三个概念的区别.答:(1)头结点:是为了方便操作链表而附设的,头结点数据域通常用来保存跟链表有关的信息,比如链表的长度;首元结点:就是链表里“正式”的第一个结点,即链表的开始结点;头指针:头指针是指向链表的基地址。

如果链表存在头结点则头指针就是指向头结点的地址,反之指向首元结点的地址。

(2)头结点、首元结点、头指针区别为:性质不同、目的不同、存在情况不同。

4. 设计一个算法,将元素x插入到一个有序(从小到大排序)顺序表的适当位置上,并保持有序性。

答:#include<stdio.h>2 #include<stdlib.h>34 #define LIST_INIT_SIZE 1005 #define LISTINCREMENT 106 typedef struct7 {8 int *elem;//存储空间基址9 int length ;10 int listsize;11 }SqList;1213 void InitList(SqList *L)14 {15 L->elem = (int *)malloc(LIST_INIT_SIZE*sizeof(int));//创建一个空列表16 L->length = 0;//空表长度为017 L->listsize =LIST_INIT_SIZE;//初始存储容量1819 }2021 void InputData(SqList *L)22 {2324 int n;25 int *p;26 p = L->elem;27 printf("请输入列表元素个数:");28 scanf("%d",&n);29 /*进行判断,是否超过列表长度*/30 if(n>L->listsize)//超过存储容量,再分配空间31 {32 L->elem = (int*)realloc(L->elem,(L->listsize+LISTINCREMENT)*sizeof(int));//再分配空间33 L->listsize +=(n+LISTINCREMENT);34 while(n!=0)35 {36 scanf("%d",p);37 p++;38 n--;39 L->length++;40 }41 }42 else43 {4445 while(n!=0)46 {47 scanf("%d",p);48 p++;49 n--;50 L->length++;51 }52 }53 }5455 void DisplayList(SqList *L)//显示顺序列表5657 {58。

数据结构同步训练及参考答案

数据结构同步训练及参考答案
1、设线性表的n个结点定义为(a0,a1,...an-1),重写顺序表上实现的插入和删除算法:InsertList和DeleteList.
A、p->next=s;s->next=p->next;B、s->next=p->next;p->next=s;
C、p->next=s;p->next=s->next;D、p->next=s->next;p->next=s;
20、对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是()。
A、单链表B、单循环链表
C、带尾指针的单循环链表D、带头结点的双循环链表
18、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
A、顺序表B、双链表
C、带头结点的双循环链表D、单循环链表
19、在单链表指针为p的结点之后插入指针为s的结点,正确的操作是()。
(1)f(n)=O(g(n))
(2)g(n)=O(f(n))
(3)h(n)=O(n1.5)
(4)h(n)=O(nlgn)
5、设有两个算法在同一机器上运行,其执行时间分别为100n2和2n,要使前者快于后者,n至少要多大?
6、分析下面程序段执行的时间复杂度。
(1)i=1; k=0;
while(i<=n-1)
else
{
for(j=L->length-1;j>=i-1;j--)
①//结点依次后移
②//插入t
③//表长加1
}
}
A、①L->data[j-1]=L->data[j];②L->data[i]=t;③L->length+1;

华南理工大学网络教育学院 数据库同步练习 答案

华南理工大学网络教育学院  数据库同步练习 答案

数据库同步练习第一章数据库系统引论1.不属于逻辑数据模型的是( A )A E-R模型B 关系模型C 网状模型D 层次模型2、用户看到的现实系统的、描述实际领域的情况的模型是( A )A E-R模型B 关系模型C 逻辑模型D 物理模型3、 MS SQL Server是( D )。

A. 数据库B. 数据库系统C. 数据处理系统D. 数据库管理系统4、下面没有反映数据库优点的是( A )。

A. 数据面向应用程序B. 数据冗余度低C. 数据独立性高D.数据共享性高5、表示数据库的概念模型一般使用( C )。

A. 用户活动图B. 数据流图C. E-R图D. 流程图6、数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)三者之间的关系是( A )。

A. DBS包括DB和DBMSB. DBMS包括DB和DBSC. DB包括DBMS和DBSD. DBS就是DB,也就是DBMS7、数据库系统包括数据库、数据库管理系统(DBMS)、数据库管理员(DBA)和各种应用四个部分。

8、用逻辑数据模型描述的模式有:外模式、概念模式或逻辑模式。

9、数据管理技术经历了人工管理、文件系统和数据库三个发展阶段。

10、概念模式是用逻辑数据模型对一个单位的数据的描述。

第二章数据模型1.不属于关系数据模型中的概念是( B )A .主键B 系C 关系D 属性2.有关系:R(A,B,C)PK=A S(D,A) PK=D,FK=A,参照于R的属性A。

关系R和S的元组如图1所示。

指出图1关系S中违反关系完整性规则的元组是( C )A (1,2)B (2,null)C (3,3)D (4,1)3.有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于( C )A 实体完整性约束B 引用完整性约束C 一般性完整性约束D 关键字完整性约束4. 在关系运算中,化费时间可能最长的运算是( C )。

A. 投影B. 选择C. 笛卡尔乘积D. 加5. 从关系中挑选满足条件的记录的运算称为( A )。

数据结构(含课程设计)平时作业2020秋华南理工大学网络教育答案

数据结构(含课程设计)平时作业2020秋华南理工大学网络教育答案

1. 评价一个好的算法,应该从哪几方面来考虑的?答:1、算法的正确性,2、算法的易读性,3、是算法的健壮性,4、是算法的时空效率(运行)。

2. 简述线性表的顺序和链式两种存储结构各自的主要特点。

答:1、顺序存储结构:存储单元地址连续,它以“物理位置相邻”来表示线性表中数据元素间的逻辑关系,可随机存取表中任一元素。

但它也使得插入和删除操作需移动大量的数据元素。

由于顺序表需要一组地址连续的存储单元,对于长度可变的线性表就需要预分配足够的空间,有可能使一部分存储空间长期闲置不能充分利用。

也可能由于估计不足,当表长超过预分配的空间而造成溢出,在这种情况下,又难于扩充连续的存储空间。

2、链式存储结构:存储单元地址为任意一组,它的存储单元可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。

因此,链表中结点的逻辑次序和物理次序不一定相同。

在表示数据元素之间的逻辑关系时,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息(即直接后继的存储位置),这两部分信息组成数据元素的存储映像,称为结点(node)3. 有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,99},如果采用折半查找法查找关键字为82 的元素时,请分析其比较次数和每次进行比较的元素。

答:4次比较后查找成功,分别和45、77、95、82进行比较首先和中间值45比较,82比45大选择右边,右边六个数和中间值77比较,82比77大选择右边,右边3个数选择中间值95进行比较,82比95小选择左边,左边1个数和82比较相等。

4. 有5 个元素,其入栈次序为:A,B,C,D,E,在各种可能的出栈次序中,以元素C,D最先出栈(即C 第一个且D 第二个出栈)的次序有哪几个?答:有3 个: CDBAE, CDEBA, CDBEA5. 一棵二叉树的先序遍历序列为ABCDEF,中序遍历序列为CBAEDF,则后序遍历序列为什么?答:CDBAE;CDBEA;CDEBA6. 将整数序列(4,5,7,2,1,3,6)中的元素依次插入到一棵空的二叉排序树中,试构造相应的二叉排序树,要求用图形给出构造过程。

数据结构(含课程设计)·平时作业2020春华南理工大学网络教育答案

数据结构(含课程设计)·平时作业2020春华南理工大学网络教育答案

平时作业:1.简述单链表设置头结点的主要作用。

答:1、防止单链表是空的而设的。

当链表为空的时候,带头结点的头指针就指向头结点,如果当链表为空的时候,头结点的指针域的数值为NULL。

2、为了方便单链表的特殊操作,插入在表头或者删除第一个结点。

这样就保持了单链表操作的统一性。

3、单链表加上头结点之后,无论单链表是否为空,头指针始终指向头结点,因此空表和非空表的处理统一,方便了单链表的操作,也减少了程序的复杂性和出现bug的机会。

4、对单链表的多数操作应明确对哪个结点以及该结点的前驱。

不带头结点的链表对首元结点、中间结点分别处理等;而带头结点的链表因为有头结点,首元结点、中间结点的操作相同,从而减少分支,使算法变得简单,流程清晰。

2. 简述线性表的顺序和链式两种存储结构各自的主要特点。

答:线性表的两种存储结构分别是顺序存储结构和链式存储结枃。

顺序存储结构的主要特点如下:①数据元素中只有自身的数据域,没有关联指针域。

因此,顺序存储结构的存储密度较大。

②顺序存储结构需要分配一整块比较大存储空间,所以存储空间利用率较低。

③逻辑上相邻的两个元素在物理上也是相邻的,通过元素的逻辑序号可以直接其元素值,即具有随机存取特性④插入和删除操作会引起大量元素的移动。

链式存储结构的主要特点如下①数据结点中除自身的数据域,还有表示逻辑关系的指针域。

因此,链式存储结构比顺序存储结构的存储密度小。

②链式存储结构的每个结点是单独分配的,每个结点的存储空间相对较小,所以存储空间利用率较高。

③在逻辑上相邻的结点在物理上不一定相邻,因此不具有随机存取特性。

④插入和刚除操作方便灵活,不必移动结点,只需修改结点中的指针域即可3. 说明在线性表的链式存储结构中,试述头结点,首元结点,头指针这三个概念的区别.答:在线性表的链式存储结构中,头指针指链表的指针,若链表有头结点则是链表的头结点的指针,头指针具有标识作用,故常用头指针冠以链表的名字。

头结点是为了操作的统一、方便而设立的,放在第一元素结点之前,其数据域一般无意义(也可存放链表的长度、用做监视哨等),有头结点后,对在第一元素结点前插入结点和删除第一结点,其操作与对其它结点的操作统一了。

华师网络学院作业答案-数据结构(100分)

华师网络学院作业答案-数据结构(100分)

1.第1题多维数组之所以有行优先顺序和列优先顺序两种存储方式是因为( )。

A.数组的元素处在行和列两个关系中B.数组的元素必须从左到右顺序排列C.数组的元素之间存在次序关系D.数组是多维结构,内存是一维结构您的答案:A题目分数:2此题得分:2.02.第2题3个结点可构成( )个不同形态的二叉树。

A.2B.3C.4D.5您的答案:D题目分数:2此题得分:2.03.第3题下列排序算法中,当初始数据有序时,花费时间反而最多的是( )。

A.起泡排序B.希尔排序C.堆排序D.快速排序您的答案:D题目分数:2此题得分:2.04.第4题要将现实生活中的数据转化为计算机所能表示的形式,其转化过程依次为( )。

A.逻辑结构、存储结构、机外表示B.存储结构、逻辑结构、机外表示C.机外表示、逻辑结构、存储结构D.机外表示、存储结构、逻辑结构您的答案:C题目分数:2此题得分:2.05.第5题下列有关线性表的叙述中,正确的是( )。

A.元素之间是线性关系B.线性表中至少有一个元素C.任一元素有且仅有一个直接前趋D.任一元素有且仅有一个直接后继您的答案:A题目分数:2此题得分:2.06.第6题若要在单链表中的结点*p之后插入一个结点*s,则应执行的语句是( )。

A.s-> next=p-> next; p-> next=s;B.p-> next=s; s-> next=p-> next;C.p-> next=s-> next; s-> next=p;D.s-> next=p; p-> next=s-> next;您的答案:A题目分数:2此题得分:2.07.第7题栈和队列都是( )。

A.限制存取位置的线性结构B.顺序存储的线性结构C.链式存储的线性结构D.限制存取位置的非线性结构您的答案:A题目分数:2此题得分:2.08.第8题引起循环队列队头位置发生变化的操作是( )。

华南理工大学《数据结构》课程习题集部分答案

华南理工大学《数据结构》课程习题集部分答案

《数据结构》课程习题集第 1 页(共 25 页)一、. 选择题. 1. 算法的计算量的大小称为计算的(B)。

A.效率 B. 复杂性 C. 现实性 D. 难度.2. 算法的时间复杂度取决于(C).A.问题的规模 B. 待处理数据的初态 C. A和B D. 难确定.3. 下面关于算法说法错误的是(D)A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的.4.从逻辑上可以把数据结构分为(C)两大类。

A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构.5.以下数据结构中,哪一个是线性结构(D)?A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串.6.下述哪一条是顺序存储结构的优点?(A)A.存储密度大 B.插入运算方便C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示.7.下面关于线性表的叙述中,错误的是哪一个?(B)A.线性表采用顺序存储,必须占用一片连续的存储单元。

B.线性表采用顺序存储,便于进行插入和删除操作。

C.线性表采用链接存储,不必占用一片连续的存储单元。

D.线性表采用链接存储,便于插入和删除操作。

.8.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用(A)存储方式最节省时间。

A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表.9.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( D )最节省时间。

A. 单链表B.单循环链表C. 带尾指针的单循环链表D.带头结点的双循环链表.10. 链表不具有的特点是(B).A.插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比.11. 设一个栈的输入序列是 1,2,3,4,5,则下列序列中,是栈的合法输出序列的是(D)。

华南理工大学数据结构(含课程设计)随堂练习及答案

华南理工大学数据结构(含课程设计)随堂练习及答案

数据结构含课程设计(随堂练习)第一章绪论·第一节数据结构的兴起当前页有2题,你已做2题,已提交2题,其中答对2题。

1.数据元素是数据的最小单位。

( )答题:对. 错. (已提交)参考答案:×问题解析:2.记录是数据处理的最小单位。

( )答题:对. 错. (已提交)参考答案:×问题解析:第一章绪论·第二节基本概念和术语当前页有5题,你已做5题,已提交5题,其中答对5题。

1.非线性结构是数据元素之间存在一种:()A)一对多关系 B)多对多关系 C)多对一关系 D)一对一关系答题: A. B. C. D. (已提交)2.数据结构中,与所使用的计算机无关的是数据的结构;()A) 存储 B) 物理 C) 逻辑 D) 物理和存储答题: A. B. C. D. (已提交)3.数据的逻辑结构是指数据的各数据项之间的逻辑关系。

( )答题:对. 错. (已提交)4.数据的物理结构是指数据在计算机内的实际存储形式。

( )答题:对. 错. (已提交)5.在顺序存储结构中,有时也存储数据结构中元素之间的关系。

( )答题:对. 错. (已提交)第一章绪论·第三节面向对象与数据结构当前页有1题,你已做1题,已提交1题,其中答对1题。

1.数据结构的抽象操作的定义与具体实现有关。

( )答题:对. 错. (已提交)第一章绪论·第四节算法描述与分析当前页有7题,你已做7题,已提交7题,其中答对7题。

1.算法分析的目的是:()A) 找出数据结构的合理性 B) 研究算法中的输入和输出的关系C) 分析算法的效率以求改进 D) 分析算法的易懂性和文档性答题: A. B. C. D. (已提交)参考答案:C问题解析:2.算法分析的两个主要方面是:()A) 空间复杂性和时间复杂性 B) 正确性和简明性C) 可读性和文档性 D) 数据复杂性和程序复杂性答题: A. B. C. D. (已提交)参考答案:A问题解析:3.计算机算法指的是:()A) 计算方法 B) 排序方法 C) 解决问题的有限运算序列 D) 调度方法答题: A. B. C. D. (已提交)参考答案:C问题解析:4.算法的优劣与算法描述语言无关,但与所用计算机有关。

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

6.3 分别写出题 6.1 所示二叉树的先根,中根和后根序列。 答:先根:ABCDEFGHIJ 二叉树。 答: 由后根遍历序列得到二叉树的根结点 A (后根序列中最后一个结点) ; 在中序序列中, A 的左力是 A 的左子树上的结点,A 的右边是 A 的右子树上的结点;再到后根序列中找左子 树和右子树的根结点,依次类推,直到画出该二叉树。 中根:DCBAFEHJIG 后根:DCBFJIHGEA 6.4 已知一棵二叉树的中根序列和后根序列分别为 BDCEAFHG 和 DECBHGFA,试画出这棵
(4) int x = 91, y = 100;
while (y > 0) { if (x > 100) else x++; } 答:100 解析: x=91; //1 y=100; //1
{
x = x -10; y--;
}
while(y>0) //1101 if(x>100) //1100 { x=x-10; //100 y--; //100 } else x++; //1000 以上程序段右侧列出了执行次数。该程序段的执行时间为: T(n)=O(1)
while ( i <= n ) { k = k+10*i; i++; } 答:n-1
解析: i=1; //1 k=0; //1 while(i<n) //n { k=k+10*i; //n-1 i++; //n-1 } 由以上列出的各语句的频度,可得该程序段的时间消耗: T(n)=1+1+n+(n-1)+(n-1)=3n 可表示为 T(n)=O(n)
x++; y++;
答:O(n2) void recursive (int n) { if (n <= 1) return 1; else return (recursive (n -1) + recursive(n -1)); } 答:O(n) 1.3 设 n 为正整数,试确定下列各程序段中带标号@的语句的频度。
2.4 已知单链表 L 中的结点是按值非递减有序排列的。 试写一算法将值为 x 的结结点插入表 L 中,使得 L 仍然有序。 答: 因已知顺序表 L 是按值非递减有序表, 所以只要从头找起找到第一个比它大(或相等) 的结点数据,把 x 插入到这个数所在的位置就可以了。
2.5 假设分别以两个元素值递增有序的线性表 A, B 表示两个集合 (即同一个线性表中的元素 各不相同) 。现要求构成一个新的线性表 C。C 表示集合 A 与 B 的交,且 C 中元素也递增有 序。试分别以下顺序表和单链表为存储结构,编写实现上述运算的算法。 答:
(5) int x = 0;
for (int i =1; i <= n; i++) for (int j =1; j<=i; j++) for (int k = 1; k <= j; k++) 答:n /2+n (6) int x = n, y = 0; // n>1 while (x >= (y+1)*(y+1)) y++; 答: y -1 解析:
(1) int i =1, k = 0;
while (i <= n-1) 答:n-1
(2) int i =1, j = 0;
{ k = k +10*i; i = i+1; }
while ((i+j) <= n) if (i>j) j++; else i++; 答:n/2
(3) int i =1, k = 0;
if(p1||p2) return 0; else return 1; } 第6章 习题 6 6.1 分别就下图中的二叉树和树回答下列问题:①哪个是根结点?;②哪些是叶子结点?; ③哪 个是 G 的双亲?; ④哪些是 G 的祖先?; ⑤哪些是 E 的子孙?; ⑥哪些是 E 的兄弟?; 哪些是 C 的兄弟?; ⑦结点 B 和 的层数分别是多少?。
2
x++;
由 x=n 且 x 的值在程序中不变,又 while 的循环条件(x>=(y+1)*(y+1))可知:当 (y+1)*(y+1)刚超过 n 的值时退出循环。
由(y+1)*(y+1)<n 得:y<n^0.5-1 所以,该程序段的执行时间为:向下取整(n^0.5-1) 第2章 习题 2 2.1 描述以下三个概念的区别:头指针、头结点、首元结点。此外叙述有序表的特性何在?, 以及向量与有序表的异同点?,头指针变量和头结点的作用?。并比较顺序存储结构和链式存 储结构的优缺点。 答:首元结点是指链表中的第一个结点,也就是没有直接前驱的那个结点。链表的头指 针是一指向链表开始结点的指引(没有头结点时)。单链表由头指针唯一确定,因此单链表可 以用头指针的名字来命名。头结点是人为地在链表的开始结点之前附加的一个结点。有了头 结点之后.头指针指向头结点,不论链表是否为空,头指针总是非空。而且头指针的设置使 得对链表的第一个位置的操作与在表其他位置上的操作一致(都是在某一结点之后)。 2.2 试写出将链表 L 从某元素 R 处分成两个链表 L 和 K 的算法。R 为 K 表的第一个元素。 答:提示:链表最终将分成两个链表。处理好 L 的尾结点(即 R 的前驱结点) ,和 K 的 头结点(R) 。 void depart_Node(Node *head,int R,Node *head_K) { Node *p=head,*temp; while(p){if(p->data=R)break;temp=p;p=p->next;} temp->next=NUll; head_k->next=p; } 2.3 给定一个 n 项元素的线性表 V,写一个过程,将元素排列的次序颠倒过来。要求占用原 来的空间,并且用顺序表和单表两种方法表示(要求用最少的附加空间来完成) 。 答: 线性表
A B E B A C
树、 二叉树
C
F
G
D
E
F
G
D
H I
H
I
J
J
答: 左边的图形 1)A 2)D,J 3)E 右边的图形 1)A 2)D,H,I,J,F,G 3)C 4)C,A 5)H,I,J 6)E 兄弟:D , C 兄弟: B 7) 2 和 4 6.2 分别画出含 3 个结点的无序树与二叉树的所有不同形态。 答: 4)E,A 5)G,H,I,J 6)E 兄弟:B , C 兄弟: F,G 7) 2 和 5
第3章 习题 3
栈、队列
3-1 对于一个适当大小的栈,设输入项序列为 A、B、C、D、E。为得到下列的处理序列,需 要做什么样的运算序列(由 PUSH、POP 组成)?。如果其中某处理序列得不到时,试说明理 由?:① A、B、C、D、E;② B、C、D、E、A;③E、A、B、C、D;④ E、D、C、B、A。 答 : ① PUSH(A), POP(A), PUSH(B), POP(B), PUSH(C), POP(C), PUSH(D), POP(D), PUSH(E), POP(E) ②PUSH(A), PUSH(B), POP(B), PUSH(C), POP(C), PUSH(D), POP(D), PUSH(E), POP(E), POP(A) ③无法实现。 ④PUSH(A), PUSH(B), PUSH(C), PUSH(D), PUSH(E), POP(E), POP(D), POP(C), POP(B), POP(A) 3-2 用链表存放着 n 个字符, 试用算法判断读字符串是否有中心对称关系。 例如 abccba, abcba 都算是中心对称的字符串。要求用尽可能少的时间完成判断(提示:将一半的字符先依次进 栈) 。 答:
6.5 将下图所示的森林转换成二叉树。
A G L
B
C
H
M
N
O
D
E
F
I
J
K Q
P R
答:
6.6 分别画出下图所示各二叉树对应的森林。
A A C B A B C G B A C D H B E I J A C F
答:
6.7 给定权值 7,18,3,32,5,26,12,8,构造相应的哈夫曼树。 答:按权值大小排列后 3 5 7 8 12 18 26 32 只要按照将最小的两个合并, 合并后的值再 入列中(最小的两个出列), 至到列中只有一个值.按上面要求构造哈夫曼树如下: /////树列完后, 可取左树编码 为 0, 右为 1, (左为 1, 右为 0 亦可) [3]`````[5]`````````[7]``````[8] ``\`````/`````````````\``````/ `0`\```/`1```````````0`\````/`1 ````\`/`````````````````\``/ ````(8)`````[12]````````(15)`````[18] ``````\``````/`````````````\``````/ `````0`\````/`1```````````0`\````/`1 ````````\``/`````````````````\``/ ````````(20)``````[26]```````(33)``````[32] ```````````\``````/`````````````\``````/
第1章 习题 1
绪论
1.1 什么是数据、数据元素、原子元素?,它们有何区别?。 答:数据:用以描述客观事物的数、字符以及所有能被计算机接受和处理的符号的集合 称为数据。例如整数、实数、字符、字符串、表格及各种图像、声音等。数据元素:就是数 据的基本单位,在某些情况下,数据元素也称为元素、结点、顶点、记录。数据元素有时可 以由若干数据项组成。原子元素是物理学的概念。 1.2 分析下列程序段的运行时间(时间复杂度) 。 void mystery (int n) { int i, j, k; for (i =1; i < n; i++) for (j = i+1; j <= n; j++) for (k = 1; k<= j; k++); } 答:O(n3) void odd (int n) { int i, j, x = 0, y = 0; for (i =1; i <= n; i++) if odd(i) { for(j = i; j <= n; j++) for( j = 1; j <= i; j++) } }
相关文档
最新文档