数据结构key_书面作业1
数据结构作业一满分版

数据结构作业一满分版.1.在线性表的下列存储结构中,读取元素花费的时间最少的是A.单链表B. 双向链表C.循环链表D.顺序表说明:顺序表总从链表访问快,因为顺序表元素都是按顺序排列在一起的。
而链表的元素是分散的,要访问它的某一个元素,必须先访问它前面的元素。
2.顺序表是线性表的A.链式存储结构B. 顺序存储结构C. 索引存储结构D.散列存储结构说明:顺序存储指在内存中是一个连续的整块,这是定义,没啥说的。
3. 以下关于线性表的说法不正确的是( )。
A、线性表中的数据元素可以是数字、字符、记录等不同类型。
B、线性表中包含的数据元素个数不是任意的。
C、线性表根据存储结构分可以有顺序表、链表、动态表D、存在这样的线性表:表中各结点都没有直接前趋和直接后继说明:A,我认为可以是任何类型(暂时没想出反例)B,这句话不太好理解,估计原题的意思是为了说明:线性表是能得到确切的元素个数。
C,线性表只包括顺序表和链表。
而动态表,没听说过这种说法。
D,线性表为空,好像就符合题意。
4.在顺序表中,只要知道( ),就可在相同时间内求出任一结点的存储地址。
A) 基地址B) 结点大小C) 向量大小D)基地址和结点大小说明:这里任意结点是指给出这个结点的索引(index),则其地址为:base + index * sizeof(node),这里base为基地址,sizeof(node)为结点大小,假设index从0开始计数(C/C++都是从0开始,如果其它语言从1开始,只要将index-1代替index 就可以了)5.在等概率情况下,顺序表的插入操作要移动( )结点。
A) 全部B) 一半C) 三分之一D)四分之一说明:插入和删除操作,平均约要移动全部元素的1/2,在P25,有推导公式,记住结果就行了。
'..6.在( )运算中,使用顺序表比链表好。
A) 插入B) 删除C) 根据序号查找D) 根据元素值查找说明:插入、删除操作都是链表快。
数据结构(本)形考作业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所指的结点时,可执行()。
Homework

《数据结构》书面作业第1章绪论一、选择题1. 下面程序段的时间复杂度为()。
for (i=0;i<n;i++)for (j=0;j<m;j++) a[i][j]=0;A. O(m)B. O(n)C. O(m*n)D. O(m/n)2. 下面程序段的时间复杂度为()。
i=1; K=0;While (i<=n-1){k=k*10*i; i++; }A. O(n)B. O(1)C. O(n+1)D. O(n2)3. 下面程序段的时间复杂度为()。
i=1;do{ j=1;do{ printf(“%d\n”,i*j); j++; }while (j>n)i++;}while (i>n);A. O(n)B. O(1)C. O(n2)D. O(n3)4. 下面程序段的时间复杂度为()。
I=0; S=0;While (s<n) {I++; s=s+I; };A. O(n)B. O(n2)C. O(n1/2)D. O(n3)5. 起泡排序算法在最坏情况下的时间复杂度为()。
A. O(n)B. O(n2)C. O(n3)D. O(n4)6. 设问题的规模为n,分析以下程序段:k=n; m=0; /* n>1 */while (k>=(m+1)*(m-1)) m++;以上程序段的算法时间复杂度是()。
A. O(n)B. O(1)C. O(n1/2)D. O(n2)7. 设问题规模为n,分析以下程序段:a=10; b=100;while (b>0) { a++; b--; }以下程序段的算法时间复杂度是()。
A. O(1)B. O(n)C. O(n2)D. O(n1/2)二、应用题1. 有一种数据结构B1=(D,R),其中:D={1,5,8,12,20,26,34}R={r}r={<1,8>,<8,34>,<34,20>,<20,12>,<12,26>,<26,5>}画出其逻辑结构表示并说明其属于哪一种逻辑结构。
数据结构第一阶段作业

数据结构第一阶段作业数据结构是计算机科学中非常重要的概念,包括各种不同的算法和数据结构,如数组,链表,栈,队列,树,图等。
数据结构对于程序设计的效率和正确性至关重要。
对于第一阶段作业,您可能需要选择一个或多个数据结构,并描述如何使用它们来解决某个问题或实现某种功能。
以下是一些可能的数据结构和它们的应用场景:1. 数组:数组是一种基本的数据结构,可以用于存储一组相同类型的对象。
数组可以在许多编程语言中实现,例如C,Java和Python。
数组通常使用数组声明或下标访问元素,例如int arr[3]或intarr[3][2]。
数组可以用来存储一系列事件或数据,例如股票价格或单词列表。
2. 链表:链表是一种通过节点之间链接来实现数据结构的数据类型。
每个节点包含一个值和一个指向下一个节点的指针。
链表可以使用数组或指向链表头的指针来实现。
链表可以用来实现许多应用程序,例如搜索和排序算法。
3. 栈和队列:栈和队列是另一种常用的数据结构,可以用来存储和检索一系列元素。
栈是一种后进先出的数据结构,而队列是一种先进先出的数据结构。
栈和队列都可以通过数组或指向链表头的指针来实现。
栈和队列通常用于实现一些常用的算法,例如搜索和排序算法。
4. 树和图:树和图是另一种常用的数据结构,可以用来存储具有层次结构的数据。
树和图都可以通过数组或节点指针来实现。
树和图有许多不同的实现,例如AVL树和B树。
树和图通常用于实现一些复杂的应用程序,例如搜索引擎或图形用户界面。
这些只是数据结构的一小部分,但它们足以帮助您理解如何使用它们来解决不同类型的问题。
希望这些信息能帮助您开始您的数据结构学习之旅。
数据结构第一次作业

第一行为第一个链表的各结点值,以空格分隔。
第二行为第二个链表的各结点值,以空格分隔。
【输出形式】
合并好的链表,以非降序排列,值与值之间以空格分隔。
【样例输入】
4 7 10 34
1 4 6 29 34 34 52
【样例输出】
1 4 6 7 10 29 34 52
【评分标准】
要使用链表实现,否则不能得分。
3.设n为大于1的正整数,计算机执行下面的语句时,带#语句的执行次数为n。
i=1;
j=0;
while(i+j<=n){
# if(i>j)
j++;
else
i++;
}
4.在具有n个链结点的链表中查找一个链结点的时间复杂度为O(n)。
5.下面程序段的时间复杂度为O(mn)。
for ( i = 0; i < n; i++ )
D.每个链结点有多少个直接后继结点,它就应该设置多少个指针域
8.将长度为m的线性链表链接在长度为n的线性链表之后的过程的时间复杂度若采用大O形式表示,则应该是B。
A.O(m) B.O(n) C.O(m+n) D.O(m-n)
9.在一个单链表中,若要在p所指向的结点之后插入一个新结点,则需要相继修改__个指针域
int time (int n) {
int count=0, x=2;
while ( x < n/2 ) {
x=2x;
count++;
}
return (count);
}
时间复杂度:O(logn)
count值:logn-2
国开作业《数据结构(本)-形考作业》 (1)

题目:有一个长度为10的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为()。
选项A:26/10选项B:29/10选项C:29/9选项D:31/10答案:29/10题目:已知一个有序表为{11,22,33,44,55,66,77,88,99},则顺序查找元素55需要比较()次。
选项A:3选项B:6选项C:5选项D:4答案:5题目:有数据{53,30,37,12,45,24,96},从空二叉树开始逐个插入数据来形成二叉排序树,若希望高度最小,应该选择的序列是()。
选项A:45,24,53,12,37,96,30选项B:37,24,12,30,53,45,96选项C:30,24,12,37,45,96,53选项D:12,24,30,37,45,53,96答案:37,24,12,30,53,45,96题目:对于顺序存储的有序表{5,12,20,26,37,42,46,50,64},若采用折半查找,则查找元素26的比较次数是()。
选项A:5选项B:3选项C:6选项D:4答案:4题目:在所有的排序方法中,关键字比较的次数与记录初始排列秩序无关的是()。
选项A:直接插入排序选项B:希尔排序选项C:冒泡排序选项D:直接选择排序答案:直接选择排序题目:对线性表进行二分查找时,要求线性表必须()。
选项A:以顺序存储方式,且数据元素有序选项B:以链接存储方式选项C:以顺序存储方式选项D:以链接存储方式,且数据元素有序答案:以顺序存储方式,且数据元素有序题目:采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为()。
选项A:(n+1)/2选项B:n/2选项C:(n-1)/2选项D:n答案:(n+1)/2题目:从未排序序列中依次取出元素与已经排好序的序列中的元素作比较。
将其放入已排序序列的正确的位置上,此方法称为()。
选项A:交换排序选项B:归并排序选项C:选择排序选项D:插入排序答案:插入排序题目:依次将每两个相邻的有序表合并成一个有序表的排序方法称为()。
数据结构(本)形考作业1参考答案

数据结构(本)形考作业指导作业1参考答案一、单项选择题1.C 2.D 3.B 4.C 5.D 6.C 7.B 8.C 9.A 10.B11.C 12.D 13.C 14.A 15.B 16.C 17.C 18.B 19.B 20.D二、填空题1.n-i+1 2.n-i3.集合线性结构树形结构图状结构4.物理结构存储结构5.线性结构非线性结构6.有穷性确定性可形性有零个或多个输入有一个或多个输出7.图状结构8.树形结构9.线性结构10.n-1 O(n) 11.s->next=p->next; 12.head13.q->next=p->next; 14.p->next=head; 15.单链表16.顺序存储链式存储17.存储结构18.两个直接后继直接前驱尾结点头结点19.头结点的指针指向第一个结点的指针20.链式链表三、问答题1.简述数据的逻辑结构和存储结构的区别与联系,它们如何影响算法的设计与实现?答:若用结点表示某个数据元素,则结点与结点之间的逻辑关系就称为数据的逻辑结构。
数据在计算机中的存储表示称为数据的存储结构。
可见,数据的逻辑结构是反映数据之间的固有关系,而数据的存储结构是数据在计算机中的存储表示。
尽管因采用的存储结构不同,逻辑上相邻的结点,其物理地址未必相同,但可通过结点的内部信息,找到其相邻的结点,从而保留了逻辑结构的特点。
采用的存储结构不同,对数据的操作在灵活性,算法复杂度等方面差别较大。
2.解释顺序存储结构和链式存储结构的特点,并比较顺序存储结构和链式存储结构的优缺点。
答:顺序结构存储时,相邻数据元素的存放地址也相邻,即逻辑结构和存储结构是统一的,,要求内存中存储单元的地址必须是连续的。
优点:一般情况下,存储密度大,存储空间利用率高。
缺点:(1)在做插入和删除操作时,需移动大量元素;(2)由于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;(3)表的容量难以扩充。
数据结构 第一次作业 测验答案 慕课答案 作业一 UOOC优课 课后练习 深圳大学

数据结构第一次作业一、单选题 (共100.00分)1. 已知栈S为空,数据1、2、3、4依次逐个进入栈S,则栈顶数据为()A. 1B. 2C. 3D. 4正确答案:D2. 栈的最大特点是()A. 先进先出B. 后进先出C. 无限递归D. 有限递归正确答案:B3. 队列的最大特点是()A. 先进先出B. 后进先出C. 无限递归D. 有限递归正确答案:A4. 已知栈包含10元素,其中存放在栈底是第1号元素,则第10号元素可以通过()进行访问A. 栈底B. 栈中C. 栈尾D. 栈顶正确答案:D5. 以下结构中,哪一个是属于物理结构()A. 栈B. 队列C. 链队列D. 线性表正确答案:C6. 使用长度为10的数组实现循环队列,则该队列最多存储数据个数为()A. 1B. 9C. 11.D.5正确答案:B7. 已知顺序表包含1000个数据,现在第88号位置插入新的数据,需要移动的数据个数为()A. 88B. 87C. 912D. 913正确答案:D8. 若线性表最常用的操作是存取第i个元素及其后继的值,则最节省操作时间的存储结构是()A. 单链表B. 双链表C. 单循环链表D. 顺序表正确答案:D9. 以下结构中,哪一个是属于物理结构()A. 线性表B. 栈C. 单链表D. 队列正确答案:C10. 已知顺序表包含100个数据,现在要删除第99号位置的数据,需要移动的数据个数为()A. 99B. 100C. 1D. 2正确答案:C已知指针p指向单链表L的某个结点,判断p指向的结点是尾结点的条件是()A. if (p->next>p)B. if (p->next==NULL)D. if (p->data==0)正确答案:B12. 以下描述哪个是正确的()A. 线性表的数据元素的存储位置一定是连续的B. 顺序表的数据元素的存储位置一定是连续的C. 链表的数据元素的存储位置一定不是连续的D. 线性表的数据元素的存储位置一定不是连续的正确答案:B已知顺序表包含100个数据,先在第15号位置插入1个新数据,接着删除第3号位置的数据,需要移动的数据总个数为()A. 18B. 84C. 184D. 188正确答案:C在数据结构概念中,数据的基本单位是()A. 数据段B. 数据项C. 数据表D. 数据元素D在数据结构概念中,结构是描述()A. 数据项的类型B. 数据元素之间的关系C. 数据成员的先后顺序D. 数据对象的取值范围正确答案:B在算法设计中,要求算法便于理解和修改是属于算法要求的()A. 正确性B. 可读性C. 健壮性D. 效率高正确答案:B以下关于算法的描述,哪个是正确的()A. 算法可以没有输入B. 算法可以包含无限个执行步骤C. 算法可以没有输出D. 算法的每个步骤允许带有歧义的正确答案:抽象数据类型ADT通过三方面描述,包括数据关系、数据操作和()A. 数据对象B. 数据来源C. 数据范围D. 数据判断正确答案:A设n为问题规模,以下程序的时间复杂度为()for (i=1; i<=10000; i++) for (j=1; j<=n; j++) a = a + 1;A. O(1)B. O(n)C. O(10000n)D. O(n2)正确答案:B20.设n为问题规模,以下程序的时间复杂度为() for (i=1; i< POW(2, n); i++) //POW(x, y)函数表示x的y次幂a = a+100;A. O(n)B. O(2n)C. O(n!)D. O(2n)正确答案:D。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题
1.在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有()个
前驱结点;最后一个结点没有后继结点,其余每个结点有且只有()个后继结点。
A. 1 , 1
B. 1 , 2
C. 2 , 1
D. 2 , 2
2.线性表若采用链式存储结构时,要求内存中可用存储单元的地址___。
A. 必须是连续的
B. 部分地址必须是连续的
C. 一定是不连续的
D. 连续或不连续都可以
3.指针变量p指向单链表中的结点,若该结点是链表的尾结点,下面正确的说
法是( )。
A. p->next = = NULL
B. p->next != NULL
C. p = =NULL
D. p->next->next = =NULL
4.设指针p所指结点不是单链表的尾结点,删除p所指结点的后继结点的操作
是()。
A. p->next=p->next->next; delete p;
B. q=p->next; p->next=q->next; delet p->next;
C. p->next=p-next->next; delet p->next;
D. q=p->next; p->next=q->next; delete q;
5.链表不具备的特点是____ 。
A 可随机访问任何一个元素
B 插入、删除操作不需要移动元素
C 无需事先估计存储空间大小
D 所需存储空间与线性表长度成正比
6.假定栈用单链表的存储结构表示,栈的栈顶指针为top,进行退栈时执行的
操作是( )。
A. top->next=top;
B. top=top->data;
C. top=top->next;
D. top->next=top->next->next;
7.一个队列的数据入列序列是1,2,3,4,则队列的出队时输出序列是____ 。
A 4,3,2,1
B 1,2,3,4
C 1,4,3,2
D 3,
2,4,1
8.栈与一般线性表区别主要在方面。
A 元素个数
B 元素类型
C 逻辑结构
D 插入、删除元素的位置
9.在一个链队中,假设F和R分别是队首和队尾指针,则删除一个结点的运算
是。
A R=F->next;
B R=R->next;
C F=F->next;
D F=R->next;
10. 数据三种最主要的逻辑结构是线性结构和()。
A. 线性表、树
B. 树形结构、图状结构
C. 线性表、图
D. 树形结构、堆
二、填空题
1.
散列存储表示等四大类。
2.
3.实现字符串逆序(既输入如“ABC”,输出为“CBA”
较好
4.银行柜面服务遵循“先来先服务”
来模拟这种行为
5.线性表第一个元素的存储地址是100,每个元素的长度是2,则第5个元素的地
址是
6.
7.
8.在一个长度为n的顺序表中删除第i个元素,要移动
第i个元素前插入一个元素,要后移
9.
10.
11.栈和队列都是结构;对于栈只能在插入和删除元素;对于
队列只能在插入元素和删除元素。
12.
13.设将整数1,2,3,4进栈,若入、出栈次序为Push, Pop,Push,Push, Pop, Pop,Push,
Pop,则出栈的数字序列为1432则具体操作为:
14.在采用少用一个存储空间的具有n个单元的循环队列中,队满时共有
元素。
对于下图所示的循环队列,队满的条件是
队空的条件是
三、设计题
1.已知str是一个非空字符串,编写算法通过在临时栈S和队列Q中缓存数据,
判处字符串str是否为回文,算法采用文字描述。
①将串str分别入队Q中和入栈S中
②将Q的队头元素出队至变量tq中,将S的栈顶元素出栈至变量ts中
③若tq==ts,重复步骤②;若tq!=ts,则退出循环,return 0表示str不是
回文
④return 1表示str是回文
2.设计函数Node * Find(Node *Head, int item),Head为带头结点单链表的头指
针,在传入的链表中查找值为item的结点并返回其地址,如不存在这样的结点则返回空值NULL。
其中结点的类型声明如下:
struct Node
{
int data;
Node *next;
};
Node * Find(Node *Head, int item)
{
Node *p=Head->next;
while(p!=NULL)
{
if(p->data == item)
return p; //查找成功p=p->next;
}
return NULL; //查找失败
}。