数据结构作业

合集下载

数据结构作业

数据结构作业
第六章树和二叉树
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【答案】大工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数据结构 作业(高起专、高起本)

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、设有编号为1, 2, 3, 4的4辆列车,顺序进入一个栈结构的站台,下列不可能的出栈顺序为D。

A. 1234B. 1243C. 1324D. 14232、4个元素按A, B, C, D顺序进入S栈,执行两次Pop(S, x)运算后,栈顶元素的值是B 。

A. AB. BC. CD. D3、从一个栈顶指针为top的链栈中删除一个结点时,用x保存被删除的结点,应执行下列A 命令。

A. x=top; top=top->next;B. top=top->next; x=top->data;C. x=top->data;D. x=top->data; top=top->next;4、向顺序栈中输入元素时 A 。

A. 先存入元素,后移动栈顶指针B. 先移动栈顶指针,后存入元素C. 谁先谁后无关紧要D. 同时进行5、设有一个顺序栈,元素A, B, C, D, E, F依次进栈,如果6个元素出栈的顺序是B, D, C, F, E, A,则栈的容量至少为A。

A. 3B. 4C. 5 6. 66、设已将元素A, B, C依次入栈,元素D正等待进栈。

那么下列4个序列中不可能出现的出栈顺序为A。

A. CADBB. CBDAC. CDBAD. DCBA7、栈和队列的相同之处是C。

A.元素的进出满足先进后出B.元素的进出满足后进先出C.只允许在端点进行插入和删除操作D.无共同点8、设栈S 和队列Q 的初始状态为空,元素e1,e2,e3,e4,e5 和e6 依次通过栈,一个元素出栈后即进入队列Q,若6 个元素出队的序列是e2,e4,e3,e6,e5,e1,则栈S 的容量至少应该是B。

A. 6B. 4C. 3D. 29、队列通常采用的两种存储结构是( A)。

A. 顺序存储结构和链式存储结构B.散列方式和索引方式C. 链表存储结构和线性存储结构D.线性存储结构和非线性存储结构10、循环队列SQ队满的条件是B。

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

作业1.线性表
(1) 在有序单链表中设计一高效算法删除所有值大于mink 且小于maxk 的元
素;思考题:你能将上述算法改为双向循环链表吗?
(2) 将带表头结点的单链表就地逆置
(3) 将顺序表逆置,要求用最少的附加空间
(4) 在有序顺序表中插入x ,插入后仍为有序的。

作业2. 栈、队列、数组
1.若进栈序列为abcd ,请给出全部可能的出栈序列和不可能的出栈序列。

2.循环队列如何判断队满和队空?
3.写出下面稀疏矩阵的三元组顺序表和十字链表表示。

4.设A 为n 阶对称阵,采用压缩存储存放于一维数组F[n(n+1)/2]中(从F[0]
开始存放),请分别给出存放上三角阵时任一矩阵元素aij (1≤i,j ≤n )的地址
计算公式和存放下三角阵时任一矩阵元素aij (1≤i,j ≤n )的地址计算公式。

作业3.树与二叉树
一、问答题
1、请分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。

2、已知二叉树的先序遍历序列是EABDCFHGIKJ ,中序遍历序列是
ABCDEFGHIJK ,请构造二叉树,并写出其层次遍历序列和后序遍历序列。

3、将图1所示的森林转换成一棵二叉树。

A B C D G H I J K
E F L
图1
4、将如图2所示的二叉树还原成树或森林
400000503008000000000700200000A ⎡⎤⎢⎥⎢⎥
⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦
A
B
C
D
G
H
I J K
E F L L
L
图2
5、假设用于通信的电文由7个字母组成,字母在电文中出现的频率分别为
0.17、0.09、0.12、0.06、0.32、0.03、0.21。

试为这7个字母设计哈夫曼编码,并计算其带权路径长度。

二、二叉树采用二叉链表存储,试设计算法实现:
(1)设计递归算法实现二叉树中所有结点的左右孩子交换。

(2)统计以值为X 的结点为根的子树中叶子结点的数目。

(3)设计算法求二叉树的高
作业4 图
一、简答题:
1. 已知带权无向图如图所示: (1). 根据普里姆(Prim )算法,求它的从顶点a 出发的最小生成树(写出过程,即添加顶点、边次序); (2). 根据克鲁斯卡尔(Kruskal )算法,求该图的最小生成树(写出过程,即添加边次序)。

2.已知带权有向图如图所示: (1). 画出该图的邻接矩阵存储结构; (2). 请写出该图的一个拓扑有序序列;
(3). 求从顶点a 到其余各顶点之间的最短路经及最短路经长度,并给出计算过程。

二、编程题:
用类C 语言设计算法判断有向图中是否存在由顶点v s 到v t 的路径(t s ),要求说明有向图的存储方式。

作业5 查找与排序
一、简答题:
1. 设有关键字序列{25,40,33,47,12,66,72,87,94,22,5,58},散列
表长12,散列函数为h(key)=key%11,用线性探查再散列、链地址法处理冲突,请分别画出散列表,并计算在等概率情况下的查找成功的平均查找长度。

2. 已知待排序序列为{50,86,72,41,45,93,57,46},请写出按下列排序
方法进行升序排序时的第一趟排序结果:
①简单排序;
③堆排序初建堆序列;
④冒泡排序。

3.设计一种方法,以少于2n-3次的比较在n个数中同时找出最大和最小值。

相关文档
最新文档