数据结构作业
数据结构(本)形考作业1

数据结构(本)形考作业1一、单项选择题(每小题3分,共60分)题目1把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为()。
A. 逻辑结构B. 物理结构C. 给相关变量分配存储单元D. 算法的具体实现题目2下列说法中,不正确的是()。
A. 数据项是数据中不可分割的最小可标识单位B. 数据可有若干个数据元素构成C. 数据项可由若干个数据元素构成D. 数据元素是数据的基本单位题目3一个存储结点存储一个()。
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设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),插入一个元素,则移动元素个数为()。
A. iB. n-i-1C. n-i+1D. n-i题目10设有一个长度为n的顺序表,要删除第i个元素移动元素的个数为()。
A. n-iB. n-i-1C. n-i+1D. I题目11在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句()。
A. q->next=NULLB. p->next=qC. p->next=q->nextD. p=q->next题目12在一个单链表中p所指结点之后插入一个s所指的结点时,可执行()。
数据结构作业

6.45 编写递归算法:对于二叉树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间。
6.46 编写复制一棵二叉树的非递归算法。
6.59 编写算法完成下列操作:无重复地输出以孩子兄弟链表存储的树T中所有的边(这里的边是指树T本身的分支,而不是孩子兄弟链表所形成的二叉树的分支)。输出的形式为(k1, k2), ..., (ki, kj), ..., 其中,ki和kj为树结点中的结点标识。
1.20试编写算法求一元多项式 的值Pn(x0),并确定算法中每一语句的执行次数和整个算法的时间复杂度。注意选择你认为较好的输入和输出方法。本题的输入为ai(i=0, 1,…, n)、x0和n,输出为Pn(x0)。
第二章线性表
2.11设顺序表va中的数据元素非递减有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。
注:根据同学们的要求,将作业量从六道题减少到三道题,希望同学们能及时完成。
第五章数组和广义表
5.21 假设稀疏矩阵A和B均以三元组顺序表作为存储结构。试写出矩阵相加的算法,另设三元组C存放结果矩阵。
5.26 试编写一个以三元组形式输出用十字链表表示的稀疏矩阵中非零元素及其下标的算法。
5.33 试编写递归算法,输出广义表中所有原子项及其所在的层次。
第十二章 文件
12.10假设某个有3000张床位的旅店需建立一个便于管理的文件,每个记录是一个旅客的身份和投宿情况。其中旅客身份证号(15位十进制数字)可作为主关键字,此外还需建立按姓名、投宿日期、从哪来等次关键字项索引。请为此文件确定一种组织方式(如:主文件如何组织,各次关键字项索引如何建立等
第十章 排序
10.23 试以L.r[k+1]作为监视哨改写直接插入排序算法。其中,L.r[1...k]为待排记录且k<MAXSIZE。
数据结构作业及答案

第一章绪论一、选择题1.数据结构是一门研究非数值计算的程序设计问题中计算机的1以及它们之间的2和运算等的学科。
1 A.数据元素 B.计算方法 C.逻辑存储 D.数据映像2 A.结构 B.关系 C.运算 D.算法2.数据结构被形式地定义为(K, R),其中K是1的有限集,R是K上的2有限集。
1 A.算法 B.数据元素 C.数据操作 D.逻辑结构2 A.操作 B.映像 C.存储 D.关系3.在数据结构中,从逻辑上可以把数据结构分成。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构4.线性结构的顺序存储结构是一种1的存储结构,线性表的链式存储结构是一种2的存储结构。
A.随机存取 B.顺序存取 C.索引存取 D.散列存取5.算法分析的目的是1,算法分析的两个主要方面其一是指2,其二是指正确性和简单性。
1 A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性2 A.空间复杂度和时间复杂度 B.研究算法中的输入和输出的关系C.可读性和文档性D.数据复杂性和程序复杂性k6.计算机算法指的是1,它必须具备输入、输出和2等5个特性。
1 A.计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法2 A.可执行性、可移植性和可扩充性 B.可行性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、稳定性和安全性7.线性表的逻辑顺序与存储顺序总是一致的,这种说法。
A.正确 B.不正确8线性表若采用链式存储结构时,要求内存中可用存储单元的地址。
A.必须连续的B.部分地址必须连续的C.一定是不续的D连续不连续都可以9.以下的叙述中,正确的是。
A.线性表的存储结构优于链式存储结构 B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出D.队列的操作方式是先进后出10.每种数据结构都具备三个基本运算:插入、删除和查找,这种说法。
大工19春《数据结构》在线作业1【答案】

大工19春《数据结构》在线作业1【答案】大工19春《数据结构》在线作业1以下选项属于非线性结构的是()。
A.广义表B.队列C.优先队列D.栈正确答案:A在存储数据时,通常不仅需要存储数据元素的值,还要存储()。
A.数据元素的类型B.数据的基本运算C.数据元素之间的关系D.数据的存取方式正确答案:C以下选项属于逻辑结构的是()。
A.顺序表B.散列表C.有序表D.单链表正确答案:C一个递归算法必须包括()。
A.递归部分B.终止条件和递归部分C.迭代部分D.终止条件和迭代部分正确答案:B算法的时间复杂度与()有关。
A.问题规模B.计算机硬件的运行速度C.源程序的长度D.编译后执行程序的质量正确谜底:A静态链表与静态链表比拟较,其缺点是()。
A.插入和删除需移动较多半据B.有大概浪费较多存储空间C.不能随机存取D.以上都不是正确谜底:B链式栈和顺序栈相比,有一个比较明显的优点,即()。
A.插入操作更加方便B.通常不会出现栈满的情况C.不会出现栈空的情况D.删除操作更加方便正确谜底:B链式栈的栈顶在链表的()位置。
A.链头B.链尾C.链中D.随便正确谜底:A栈和行列具有相同的()。
A.逻辑结构B.存储布局C.存取点D.运算正确答案:A计较机操作系统为了实现历程办理,采用了多种历程调度战略,先来先服务的战略使用了()作为算法实现的基础。
A.栈B.队列C.优先行列D.双端行列正确谜底:B数据元素是数据的最小单位。
T.对F.错正确谜底:B数据布局是指相互之间存在一种或多种干系的数据元素的部分。
T.对F.错正确谜底:B从逻辑干系上讲,数据布局主要分为线性布局和非线性布局两大类。
T.对F.错正确谜底:A算法不能没有输出,但可以没有输入。
T.对F.错正确谜底:B同一个算法,实现语言级别越高,算法执行的效率越低。
T.对F.错正确谜底:A算法中语句执行的频度就是算法的时间复杂度。
T.对F.错正确答案:B顺序表的主要缺点是实现线性表的插入或删除可能移动很多元素。
数据结构作业题及答案

数据结构作业题及答案第一章绪论1、简述下列概念:数据、数据元素、数据结构、逻辑结构、存储结构、线性结构、非线性结构。
数据:指能够被计算机识别、存储和加工处理的信息载体。
数据元素:就是数据的基本单位,在某些情况下,数据元素也称为元素、结点、顶点、记录。
数据元素有时可以由若干数据项组成。
数据结构:指的是数据之间的相互关系,即数据的组织形式。
一般包括三个方面的内容:数据的逻辑结构、存储结构和数据的运算。
逻辑结构:指各数据元素之间的逻辑关系。
存储结构:就是数据的逻辑结构用计算机语言的实现。
线性结构:数据逻辑结构中的一类,它的特征是若结构为非空集,则该结构有且只有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。
线性表就是一个典型的线性结构。
非线性结构:数据逻辑结构中的另一大类,它的逻辑特征是一个结点可能有多个直接前趋和直接后继。
2、常用的存储表示方法有哪几种?顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。
由此得到的存储表示称为顺序存储结构。
链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。
由此得到的存储表示称为链式存储结构。
索引存储方法:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。
散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址。
3、求解下列算法的时间复杂度(1)i=1;k=0 while(i<n){k=k+10*i;i++;}T(n)=n-1∴T(n)=O(n)这个函数是按线性阶递增的(2)i=0;k=0;do{k=k+10*i;i++;} while(i<n);T(n)=n∴T(n)=O(n)这也是线性阶递增的(3)i=1;j=0;while(i+j<=n) {if(i<j)j++; else i++;}T(n)=n/2∴T(n)=O(n)虽然时间函数是n/2,但其数量级仍是按线性阶递增的。
200721数据结构 作业(高起专、高起本)

比较(
)个元素结点。
A、
B、n
C、
D、
20、设单链表中指针 p 指向结点 m,若要删除 m 之后的结点(若存在),则需修改指针的操作
为(
)。
A、
B、
C、
D、
21、在(
)运算中,使用顺序表比链表好。
A、插入
B、删除
C、根据序号查找
D、根据元素值查找
22、在一个具有 n 个结点的有序单链表中插入一个新结点并保持该表有序的时间复杂度
第 2 页 共 20 页 在您完成作业过程中,如有疑难,请登录学院网站“辅导答疑”栏目,与老师进行交流讨论!
C、一个无限序列,可以为空
D、一个无限序列,不可以为空
18、在一个长度为 n 的顺序表中删除第 i 个元素
时,需向前移动(
)个元素。
A、
B、
C、
D、i
19、从一个具有 n 个结点的单链表中查找其值等于 x 的结点时,在查找成功的情况下,需平均
( )个。
第 6 页 共 20 页 在您完成作业过程中,如有疑难,请登录学院网站“辅导答疑”栏目,与老师进行交流讨论!
A、15
B、16
C、17
D、47
48、设 n , m 为一棵二叉树上的两个结点,在中序遍历序列中 n 在 m 前的条件是( )。
A、n 在 m 右方
B、n 在 m 左方
C、n 是 m 的祖先
D、求串长
6、二维数组 M 的成员是 6 个字符(每个字符占一个存储单元)组成的串,行下标 i 的
范围从 0 到 8,列下标 j 的范围从 1 到 10,则存放 M 至少需要(
)个字节。
A、90
B、180
数据结构的作业

第五章作业: 第五章作业: 1.假设有二维数组 假设有二维数组a:array[1..6,0..7] of elemtp; 每个数据元 假设有二维数组 素占6个字节 存储器按字节编址 的基地址为1000,则: 素占 个字节,存储器按字节编址。a的基地址为 个字节 存储器按字节编址。 的基地址为 则 (1) 数组 的体积; 数组a的体积 的体积; (2)数组 的最后一个元素的第一个字节的地址; 数组a的最后一个元素的第一个字节的地址 数组 的最后一个元素的第一个字节的地址; (3)按行存储时,a[2,4]的第一个字节的地址; 按行存储时, 的第一个字节的地址; 按行存储时 的第一个字节的地址 (4)按列存储时,a[5,7]的第一个字节的地址; 按列存储时, 的第一个字节的地址; 按列存储时 的第一个字节的地址
7.写出下列各树的先根序列 后根序列 并且画出对应的二 写出下列各树的先根序列,后根序列 写出下列各树的先根序列 后根序列,并且画出对应的二 叉树. 叉树 A A A A B C D B C B C I 8.画出第 题的森林相应的二叉树 画出第7题的森林相应的二叉树 画出第 题的森林相应的二叉树. 9.画出和下列已知序列对应的树 画出和下列已知序列对应的树T: 画出和下列已知序列对应的树 树的先根次序访问序列为:GFKDAIEBCHJ,而且 而且 树的先根次序访问序列为 树的后根次序访问序列为:DIAEKFCJHBG。 。 树的后根次序访问序列为 E F J G H K
3.用单链表实现 用单链表实现Locate(L,x)函数。(可参考 函数。(可参考P26算法 算法2.5) 用单链表实现 函数。(可参考 算法 4.上机题:设单链表Va中的数据元素递增有序。试编 上机题:设单链表 中的数据元素递增有序 中的数据元素递增有序。 上机题 写程序,将数据X插入单链表 插入单链表Va, 写程序,将数据 插入单链表 ,要求插 入后保持该表的有序性。 入后保持该表的有序性。 5.写出双向链表删除第i个结点的算法 5.写出双向链表删除第i个结点的算法。 写出双向链表删除第 个结点的算法。 6.写出求双向循环链表长度的算法。(注:头结点 写出求双向循环链表长度的算法。(注 写出求双向循环链表长度的算法。( 不算) 不算)
数据结构作业题

1 简述下列术语:线性表,顺序表,链表。
答:线性表是最常用且最简单的一种数据结构,一个线性表是N个数据元素的有限序列。
顺序表是指用一组地址连续的储存单元依次存储线性表的数据元素。
用这种方法存储的线性表简称顺序表。
链表是用一组任意的存储单元存储线性表中的数据元素。
用这种方法存储的线性表简称线性链表。
2 何时选用顺序表,何时选用链表作为线性表的存储结构合适?各自的主要优缺点是什么?答:线性表的逻辑顺序与物理顺序一致;数据元素之间的关系是以元素在计算机内“物理位置相邻”来体现。
而存储链表中结点的一组任意的存储单元可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。
链表中结点的逻辑顺序和物理顺序不一定相同。
3 在顺序表中插入和删除一个结点平均需要移动多少个结点?具体的移动次数取决于哪两个因素?答:在顺序表中插入和删除一个结点平均需要移动1个结点,具体移动次数取决于时间复杂和空间复杂程度。
4 链表所表示的元素是否有序?如有序,则有序性体现于何处?链表所表示的元素是否一定要在物理上是相邻的?有序表的有序性又如何理解?答:链表元素的有序并不一定是值得有序,而是逻辑次序上的有序;链表中的元素并不需要物理位置上相邻,因为其逻辑联系已经在结点中包括了。
5 设顺序表L是递增有序表,试写一算法,将x插入到L中并使L仍是递增有序表。
答:using System;using System.Collections.Generic;using System.Collections;using System.Text;namespace test{class arrlist_test{public static ArrayList a = new ArrayList();public static void main(){do{currency.write("请写入下一个值");a.Add(Console.ReadLine());a.Sort();}while(currency .choice ());for (int i = 0; i < a.Count; i++){Console.Write("\t" + a[i]);}}}}6 写一求单链表的结点数目ListLength(L)的算法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章
1、什么是数据对象、数据元素、数据结构?
2、什么是算法?它有哪些特性?它与程序有何区别?
3、用图形表示下列数据结构:
(1)S=(D,R), D={a,b,c,d,e,f,g}, R={<a,e>, <b,c>, <c,a>, <e,f>, <f,g>}
(2)S=(D,R), D={48,25,64,57,82,36,75}, R={R1, R2}
R1={<25,36>, <36,48>, <48,57>, <57,64>, <64,75>, <75,82>}
R2={<48,25>, <48,64>, <64,57>, <64,82>, <25,36>, <82,75>}
4、将O (1)、O (n)、O (n2)、O (n3)、O (nlog2n)、O (log2n)、O (2n)按增长率递增排列。
第二章
1 试分析顺序表和链表的各自特点。
2 试编写一个算法,将一个顺序表逆置,并使用最少的辅助存储空间实现。
3 试编写一个算法,将两个元素值递减排列的顺序表合并为一个非递增的顺序表。
4 试编写一个算法,在一个递增有序排列的单链表中插入一个新结点x,并保持有序。
5 试编写一个算法,将一个单链表逆置。
第三章
1 若有4个元素,入栈顺序为ABCD,请列出所有可能的出栈序列。
2 试编写一个算法,计算一个循环队列中包含的元素个数。
3 试编写一个算法,实现链栈的入栈出栈操作。
第四章
1 设字符串S="good ",T="I am a student ",R="!",求:
(1) CONCA T(T ,R ,S) (2) SUBSTR(T ,8,7) (3) Len(T)
2 若X 和Y 是两个单链表存储的串,试设计一个算法,找出X 中第一个不在Y 中出现的字符。
3 计算下列串的next 值:
(1)a a a b c a a b a (2)a b a a b c a c b (3)b a b b a b a b
第五章
1、 已知二维数组A[m][n]采用行序维主方式存储,每个元素占k 个存储单元,并且第一个元素的存储地址是LOC(A[0][0]),则A[i][j]的地址是什么?
2、 一个稀疏矩阵如图4-17所示,求对应的三元组表示,十字链表表示?
05
10000030200
图1 一个稀疏矩阵
3、 求下列广义表操作的结果
(1) GetHead[(p,h,w)] (2) GetTail[(b,k,p,h)] (3) GetHead[(a,b),(c,d)] (4) GetTail[(a,b),(c,d)]
(5) GetHead[GetTail[((a,b),(c,d))]] (6) GetTail[GetHead[((a,b),(c,d))]] 注:[]为函数的符号
4、 利用广义表的GetHead 和GetTail 运算,将原子student 从下列广义表中分离出来。
(1)L1=(solder,teacher,student,worker,farmer) (2)L2=(solder,(teacher,student),worker,farmer)
5、 画出下列广义表的头尾表示法,并求出它的深度。
(1) ((( )), a , (( b,c ) , ( ), d ) , ((( e )))) (2) (((( a ), b )) , ((( ), d ), (e, f )))
第六章
1、已知一棵树的边的集合为
{<i,m>,<i,n>,<e,i>,<b,e>,<b,d>,<a,b>,<g,j>,<g,k>,<c,g>,<c,f>,<h,l>,<c,h>,<a,c>},画出这棵树,并回答下列问题:
(1)哪个是根结点?
(2)哪个是叶子结点?
(3)哪个是结点g的双亲?
(4)哪些是结点g的祖先?
(5)哪些是结点g的孩子?
(6)哪些是结点e的子孙?
(7)哪些是结点e的兄弟?哪些是结点f的兄弟?
(8)树的深度是多少?
(9)树的度数是多少?
2、如图6-1 所示的二叉树,回答下列问题:
图6-1 一棵二叉树
(1)写出先序、中序、后序遍历的序列;
(2)画出该二叉树对应的森林。
3、有一份电文中共使用5个字符:a、b、c、d、e,它们的出现频率依次为
4、7、
5、2、9,试画出对应的哈夫曼树,(请按左子树根结点的权小于等于右子树根结点的权的次序构造),并求出每个字符的哈夫曼编码。
4、设给定权集w= {2,3,4,7,8,9},试构造关于w的一棵哈夫曼树,并求其加权路径长度WPL。
图7.1有向图
图
7.2无向带权图
图7.3 AOV 网 图7.4 有向图
1、图7.1所示为一有向图:
(1)求每个顶点的入度和出度; (2)画出它的邻接矩阵;
(3)画出它的邻接链表与逆邻接链表。
2、已知如图7.2所示的无向带权图:
(1)写出它的邻接表,并在此存储表示基础上用克鲁斯卡尔算法求它的最小生成树(MST 树),画出其生成过程。
(2)写出它的邻接矩阵,并在此存储表示基础上用普里姆算法求其MST 树,简画出其生成过程示意图。
(3)分别画出选起点为V2的DFS 生成树和BFS 生成树。
3、列出如图7.3所示AOV 网的全部可能的拓扑序列。
4、试利用迪杰斯拉特算法,求如图7.4所示有向图从顶点1到其余各顶点的最短路径,并给出执行过程中dist 数组的变化状况。
1、分别画出在线性表(5,10,15,20,30,35,40)中进行折半查找,查找关键字10和39的过程,并分别求出ASL成功和ASL不成功的值。
2、设有一组关键字{19,1,23,14,55,20,84,27,68,11,10,77},采用哈希函数:
H(key)=key % 13
采用开放地址法的二次探测再散列方法解决冲突,试在0~18的散列地址空间中对该关键字序列构造哈希表。
第十章
1、对n个记录的表r[1..n]进行简单选择排序,所需进行的关键字之间的比较次数为多少?
2、已知序列{17,18,60,40,7,32,73,65,85},请给出采用冒泡排序法对该序列作升序排序时的每一趟的结果。
3、已知序列{503,87,512,61,908,896,257,653,465},请给出采用快速排序法对该序列作升序排序时的每一趟的结果。
4、已知序列{10,15,4,3,6,12,1,9,18,8},请给出采用希尔排序法对该序列作升序排序时的每一趟结果。