数据结构第1阶段练习题
数据结构1-4章习题答案
![数据结构1-4章习题答案](https://img.taocdn.com/s3/m/0ca48131f111f18583d05a26.png)
第1章概论习题参考解答一、填空题1、数据的逻辑结构是数据元素之间的逻辑关系,通常有下列4类:()、()、()、()。
【答】集合、线性结构、树型结构和图状结构。
2、数据的存储结构是数据在计算机存储器里的表示,主要有4种基本存储方法:()、()、()、()。
【答】顺序存储方法、链接存储方法、索引存储方法和散列存储方法。
二、选择题1、一个算法必须在执行有穷步之后结束,这是算法的()。
(A)正确性(B)有穷性(C)确定性(D)可行性【答】B。
2、算法的每一步,必须有确切的定义。
也就是说,对于每步需要执行的动作必须严格、清楚地给出规定。
这是算法的()。
(A)正确性(B)有穷性(C)确定性(D)可行性【答】C。
3、算法原则上都是能够由机器或人完成的。
整个算法好像是一个解决问题的“工作序列”,其中的每一步都是我们力所能及的一个动作。
这是算法的()。
(A)正确性(B)有穷性(C)确定性(D)可行性【答】D。
三、简答题1、算法与程序有何异同?【答】尽管算法的含义与程序非常相似,但两者还是有区别的。
首先,一个程序不一定满足有穷性,因此它不一定是算法。
例如,系统程序中的操作系统,只要整个系统不遭受破坏,它就永远不会停止,即使没有作业要处理,它仍处于等待循环中,以待一个新作业的进入。
因此操作系统就不是一个算法。
其次,程序中的指令必须是计算机可以执行的,而算法中的指令却无此限止。
如果一个算法采用机器可执行的语言来书写,那么它就是一个程序。
2、什么是数据结构?试举一个简单的例子说明。
【答】数据结构是指数据对象以及该数据对象集合中的数据元素之间的相互关系(即数据元素的组织形式)。
例如,队列的逻辑结构是线性表(先进先出);队列在计算机中既可以采用顺序存储也可以采用链式存储;对队列可进行删除、插入数据元素以及判断是否为空队列、将队列置空等操作。
3、什么是数据的逻辑结构?什么是数据的存储结构?【答】数据元素之间的逻辑关系,也称为数据的逻辑结构。
数据结构第1章绪论习题答案
![数据结构第1章绪论习题答案](https://img.taocdn.com/s3/m/6c4616c3d5bbfd0a79567384.png)
Ch1绪论1.下列与数据元素有关的叙述中,哪一个是不正确的(B)。
A.数据元素是数据的基本单位,即数据集合中的个体B.数据元素是有独立含义的数据最小单位C.数据元素又称结点D.数据元素又称作记录2.下列关于数据的逻辑结构的叙述中,哪一个是正确的(A)。
A.数据的逻辑结构是数据间关系的描述B.数据的逻辑结构反映了数据在计算机中的存储方式C.数据的逻辑结构分为顺序结构和链式结构D.数据的逻辑结构分为静态结构和动态结构3.数据的基本单位是(数据元素),在计算机中通常作为一个(整体)进行处理。
4.所有能输入到计算机中并被计算机程序处理的(符号)称为数据。
5.数据结构是一门研究非数值计算的程序设计问题中计算机的(①A)以及它们之间的(②B)和运算等的学科。
① A.数据元素 B.计算方法 C.逻辑存储 D.数据映像② A.结构 B.关系 C.运算 D.算法6.数据结构被形式的定义为(K,R),其中K是(①B)的有限集,R是K上的(②D)有限集。
① A.算法 B.数据元素 C.数据操作 D.逻辑结构② A.操作 B.映像 C.存储 D.关系7.具有线性结构的数据结构是(D)。
A.树B.图C.广义表D.栈8.在数据结构中,从逻辑上可以把数据结构分为(D)。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.内部结构和外部结构D.线性结构和非线性结构9.线性结构中元素之间存在(A)关系。
A.一对一B.一对多C.多对一D.多对多10.数据逻辑结构包括(集合)、(线性结构)、(树形结构)和(图状结构)四种类型,树形结构和图形结构合称为(非线性结构)。
11.在线性结构中,第一个结点(没有)前驱结点,其余每个结点有且只有(1)个前驱结点,最后一个结点(没有)后继结点,其余每个结点有且只有(1)个后继结点。
12.在树形结构中,树根结点没有(前驱)结点,其余每个结点有且只有(1)个前驱结点,叶子结点没有(后继)结点,其余每个结点的后继结点可以(任意多个)。
数据结构第一章习题答案
![数据结构第一章习题答案](https://img.taocdn.com/s3/m/d00ec6fbf90f76c661371ae6.png)
• 1.8 设n为正整数,试确定下列各程序段中前置 以记号@的语句的频度
• (7) x=n;y=0;
• while( x>=(y+1)*(y+1)) {
• @y++;
•}
•
• (8) x=91; y=100;
• while (y>0) {
•
@ if (x>100) { x-=100;y--}
•
else x++;
(2)用布尔函数实现算法。其优点是,将错误 返回给调用环境,由调用环境决定程序的下一 步走向。
(3)在函数的参数表中设置整形变量。其优点 同上,并可判别多种类型的错误。
• 1.7 在程序设计中,可采用下列三 种方法实现输入和输出:
• (1)通过scanf和printf语句; • (2)通过函数的参数显式传递 • (3)通过全局变量隐式传递。 • 试讨论这三种方法的优缺点。
下面我们模仿例1-7写出COMPLEX 抽象数据类型的表示和实现
• //类型定义如下:
• typedef struct cmptp{
•
float realpart; //实部
•
float imagpart; //虚部
•
} Compl;
• //-----基本操作的函数原型说明-----
•
•
┋
• void Create( float x,float y,Compl &z); • //生成一个实部为x,虚部为y的复数z •{ • z.realpart=x; • z.imagpart=y; • }//Create • • void Add(Compl z1,Compl z2,Compl &sum) • //求得和sum=z1+z2=(x1+x2)+i(y1+y2). •{ • sum.realpart=z1.realpart+z2.realpart; • sum.imagpart=z1.imagpart+z2.imagpart; • }//Add
《数据结构》第1阶段在线作业
![《数据结构》第1阶段在线作业](https://img.taocdn.com/s3/m/250be07ab7360b4c2f3f6466.png)
一、单项选择题答题要求 :每题只有一个正确的选项。
1(5.0 分)0最大容量为 n 的循环队列,队尾指针是 rear,队头是 front,则队空 的条件是( ) A) (rear+1) % n = front B) rear = front C) rear+1 = front D) (rear-l) % n = front 参考答案: B收起解析 解析:无2(5.0 分)0以下判断不正确的是( ) A) 顺序存储的线性表可随机存取。
B) 同一线性表中的数据元素应具有相同的特性。
C) 顺序存储方式的优点是存储密度大,插入、删除操效率高。
D) 在线性表的链式存储结构中,逻辑上相邻的数据元素在物理位置上不一定相 邻。
参考答案: C收起解析解析:无3(5.0 分)0以下说法错误的是( ) A) 散列法存储的基本思想是由关键码的值决定数据的存储地址。
B) 散列表的结点中只包含数据元素自身的信息,不包含任何指针。
C) 装填因子是散列法的一个重要参数,它反映散列表的装填程度。
D) 散列表的查找效率主要取决于散列表造表时选取的散列函数和处理冲突的 方法。
参考答案: B收起解析解析:无4(5.0 分)0一维数组和线性表的区别为( ) A) 前者长度固定,后者长度可变 B) 两者长度均固定 C) 前者长度可变,后者长度固定 D) 两者长度均可变 参考答案: A收起解析 解析:无5(5.0 分)0在具有 n 个结点的二叉树(二叉链表表示)中,值为空的链域数为 () A) n-1 B) 2n-1 C) n1 D) 2n 1 参考答案: B收起解析 解析:无6(5.0 分)5.0已知广义表 LS=((a,b,c),(d,e,f)),运用 head 和 tail 函数取出 LS 中元素 e 的运算是( ) A) head(tail(LS)) B) tail(head(LS)) C) head(tail(head(tail(LS)))) D) head(tail(tail(head(LS)))) 参考答案: C收起解析解析:无7(5.0 分)5.0以下说法错误的是( ) A) 对循环链表来说,从表中任一结点出发都能通过前后操作而扫描整个循环链 表。
(完整版)数据结构练习题及参考答案
![(完整版)数据结构练习题及参考答案](https://img.taocdn.com/s3/m/9ce3abd92b160b4e777fcf55.png)
数据结构练习题第一部分绪论一、单选题1. 一个数组元素a[i]与________的表示等价。
A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。
A、参数类型B、参数个数C、函数类型3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数A、指针B、引用C、值4. 下面程序段的时间复杂度为____________。
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. 执行下面程序段时,执行S语句的次数为____________。
for(int i=1; i<=n; i++)for(int j=1; j<=i; j++)S;A、 n2B、 n2/2C、 n(n+1)D、 n(n+1)/26. 下面算法的时间复杂度为____________。
int f( unsigned int n ) {if ( n==0 || n==1 ) return 1; else return n*f(n-1);}A、 O(1)B、 O(n)C、 O(n2)D、 O(n!)二、填空题1. 数据的逻辑结构被分为__________、_________、__________和__________四种。
2. 数据的存储结构被分为__________、_________、__________和__________四种。
3. 在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、________和________的联系。
4. 一种抽象数据类型包括__________和__________两个部分。
5. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。
数据结构阶段测评大全含答案
![数据结构阶段测评大全含答案](https://img.taocdn.com/s3/m/c9ce38897c1cfad6195fa7a3.png)
数据结构-阶段测评11.单选题1.15.0计算机识别、存储和加工处理的对象被统称为(A ) 您答对了• a数据•• b数据元素•• c数据结构•• d数据类型•本题考核数据的基本概念1.25.0非空的循环单链表head的尾结点(由p所指向)满足(C)。
您答对了• ap->next==NULL•• bp==NULL•• cp->next==head•• dp==head•本题考核循环单链表的基本特点。
1.35.0若长度为n的线性表采用顺序存储结构存储,在第i个位置上插入一个新元素的时间复杂度为(A)。
您答对了• aO(n)•• bO(1)•• cO(n2)•• dO(n3)•本题考核顺序表的插入运算的时间复杂度。
1.45.0下面程序段中a[i][j]=0语句执行的时间复杂度是( D)。
for(i=0;i<n;i++)for(j=1;j<m;j++)a[i][j]=0;您答对了• aO(n)•• bO(m+n+1)•• cO(m+n)•• dO(m*n)•本题考核时间复杂度的计算方法1.55.0在一个具有n个结点的有序单链表中插入一个新结点并保持单链表仍然有序的时间复杂度是(B)。
您答对了• aO(1)•• bO(n)•• cO(n2)•• dO(nlog2n)•因要保持有序,所以需要查找插入结点的位置,而在链表中查找结点位置的时间复杂度为O(n),所以本题选B。
1.65.0在一个长度为n的顺序表中删除第i个元素(1<=i<=n)时,需向前移动(A)个元素。
您答对了• an-i•• bn-i+1•• cn-i-1•• di•考核顺序表的基本操作1.75.0设顺序表有10个元素,则在第5个元素前插入一个元素所需移动元素的个数为( B)。
您答对了• a5•• b6•• c7•• d9•在第5个元素前插入元素需要将第5个元素开始的所有元素后移,所以本题答案为B。
1.85.0算法指的是(D )。
数据结构形成性考核册第1次作业参考答案
![数据结构形成性考核册第1次作业参考答案](https://img.taocdn.com/s3/m/2846e5c02cc58bd63186bd30.png)
《数据结构》形成性考核册第1次作业参考答案第一章绪论一、填空题1、数据操作2、集合结构线性结构树型结构图形结构3、引用类型4、1:1 1:n n:m5、不对6、多个7、O(m*n)8、时间复杂度空间复杂度9、顺序链接索引散列10、O(n2)11、O(n)12、O(n)O(m*n)二、选择题1~8:DBABADDD三、应用题(1)功能:判断n是否是一个素数,若是则返回数值1,否则返回0。
时间复杂度:O(n)。
(2)功能:计算S=1!+2!+…+n!的值。
时间复杂度:O(n)。
(3)功能:计算S=1!+2!+…+n!的值。
时间复杂度:O(n2)。
(4)求出满足不等式1+2+…+i≥n的最小i值。
O(n)。
第二章线性表四、填空题1、A[P-1]2、1083、前驱后继4、最后一个表头5、p->next=q->nextq->next=p6、HL->next=NULLHL->next=HL7、P->next8、Q->next9、P->next s10、从前向后前移n-i11、O(1)O(n)12、(n+1)/213、O(n)O(1)14、A[P].next15、a[j].next=a[i].nexta[i].next=j16、数据值指针五、选择题1~5:BDDBC六、应用题1、(1)、(79,62,34,57,26,48)(2)、(26,34,48,57,62,79)(3)、(48,56,57,62,79,34)(4)、(56,57,79,34)(5)、(26,34,39,48,57,62)2、(1)将类型为List的线性表L中第i个元素移至表尾位置的算法,L中的元素类型为ElemType,假定不需要对i的值进行有效性检查。
void move (List& L, int i){ElemType x=L.list[ i-1];for(int j=i; j<L.size; j++)L.list[ j-1]=L.list[ j ];L.list[L.size-1]=x;}·将线性表L中的第i个元素移入表头的算法与上类似。
数据结构第1章作业参考答案
![数据结构第1章作业参考答案](https://img.taocdn.com/s3/m/2e07aff0afaad1f34693daef5ef7ba0d4a736da2.png)
第一章概述一、单项选择题1.数据结构是(C )。
A. 一种数据类型B. 数据的存储结构C. 相互之间存在一种或多种特定关系的数据元素的集合D. 一组性质相同的数据元素的集合2.数据元素及其关系在计算机存储器内的表示,称为数据的(D )。
A. 线性结构B. 非线性结构C. 逻辑结构D. 存储结构3.在数据结构中,数据的逻辑结构可以分成(C )。
A. 内部结构和外部结构B. 紧凑结构和非紧揍结构C. 线性结构和非线性结构D. 动态结构和静态结构4.计算机算法指的是(C )。
A. 计算方法B. 排序方法C. 解决问题的步骤序列D. 调度方法5.一个算法是(c )。
A. 程序B. 要满足五个基本特性C. 具体问题求解步骤的描述D. A和C6.算法必须具备(B)这3个特性。
A. 可执行性、可移植性、可扩充性B. 可行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性7.下面关于算法的叙述中错误的是(A )。
A. 一个算法应有一个或多个输入B. 算法最终必须由计算机程序实现C. 为解决某问题的算法同为该问题编写的程序含义是相同的D. 算法中的每条指令都必须有明确的含义8.若一个算法的时间复杂度用T(n)表示,其中n的含义是( C )。
A. 循环层数B. 语句条数C. 问题规模D. 函数数量9.下面说法正确的是(A)。
A. 健壮的算法不会因非法的数据输入而出现莫名其妙的状态B. 程序一定是算法C. 算法的时间复杂度只依赖于问题的规模D. 算法的优劣与算法描述语言无关,但与所用计算机有关D. 一组性质相同的数据元素的集合10.算法与程序的主要区别在于算法的( B )A.可行性 B.有穷性 C.确定性 D.有输入输出11.算法分析的两个主要方面是( A )。
A.空间复杂性和时间复杂性 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程度复杂性12.以下数据结构中哪一个是非线性结构?( D )A. 队列B. 栈C. 线性表D. 二叉树13.以下数据结构中哪一个是线性结构?( A )A. 队列B.二叉树C. 图D. 集合二、判断题1.数据的逻辑结构是指数据的各数据项之间的逻辑关系。
《数据结构》-1自考试卷及答案
![《数据结构》-1自考试卷及答案](https://img.taocdn.com/s3/m/9f34c78a6aec0975f46527d3240c844769eaa0c7.png)
《数据结构》-1一、判断题 (每小题1分,共10分)1、线性表的逻辑顺序与物理顺序总是一致的。
( )2、线性表只能采用顺序存储结构或者链式存储结构。
( )3、线性表的顺序存储表示优于链式存储表示。
( )4、不管堆栈采用何种存储结构,只要堆栈不空,可以任意删除一个元素。
( )5、线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。
( )6、已知一棵二叉树的前序序列和后序序列可以唯一地构造出该二叉树。
( )7、一般树和二叉树的结点数目都可以为0。
( )8、序列初始为逆序时,冒泡排序法所进行的元素之间的比较次数最多。
( )9、每种数据结构都应具备三种基本运算:插入、删除和搜索。
( )10、若某堆栈的输入序列为1,2,3,4,则4,3,1,2不可能是堆栈的输出序列之一。
( )二、单项选择题 (每小题2分,共20分)1、算法分析的目的是( )A.研究算法的输入与输出之间的关系B.找出数据结构的合理性C.分析算法的效率以求改进算法D.分析算法的可读性与可移植性2、已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行下列哪一个操作( )A. s->link = p; p->link = s;B. s->link = p->link; p->link = s;C. s->link = p->link; p = s;D. p->link = s; s->link = p;3、图的深度优先搜索类似于树的()次序遍历。
A.先根B.中根C.后根D.层次4、一个栈的输入序列为1,2,3,4,下面哪一个序列不可能是这个栈的输出序列()A. 1,3,2,4B. 2,3,4,1C. 4,3,1,2D. 3,4,2,15、若深度为5的完全二叉树的第5层有3个叶结点,则该二叉树一共有( )个结点。
A.15B.16C.17D.186、下列排序方法中,哪一种方法的比较次数与纪录的初始排列状态无关()A. 直接插入排序B. 起泡排序C. 快速排序D. 直接选择排序7、对数据元素序列(49,72,68,13,38,50,97,27)进行排序,前三趟排序结束时的结果依次为:第一趟:13,72,68,49,38 ,50,97,27;第二趟:13,27,68,49,38,50,97,72;第三趟:13,27,38,49,68,50,97,72;该排序采用的方法是( )A.插入排序法B.选择排序法C.冒泡排序法D.堆积排序法8、对于循环队列,存储空间大小为n,头指针为F,尾指针为R。
数据结构第一章习题及解答
![数据结构第一章习题及解答](https://img.taocdn.com/s3/m/54b97125b7360b4c2e3f6483.png)
Chap1一、选择题1. 算法的计算量的大小称为计算的(B )。
A.效率 B. 复杂性 C. 现实性 D. 难度2.计算机算法指的是(1) C,它必须具备(2)B这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列D. 调度方法(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性3. 下面关于算法说法正确的是( D )。
A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性(基本运算执行有限次)是指指令不能有二义性D. 以上几个都是错误的4.从逻辑上可以把数据结构分为( C )两大类。
A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构5.以下数据结构中,哪一个是线性结构( D )?A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串6.在下面的程序段中,对x的赋值语句的频度为( C )FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A. O(2n) B.O(n) C.O(n2) D.O(log2n)7.程序段 FOR i:=n-1 DOWNTO 1 DOFOR j:=1 TO i DOIF A[j]>A[j+1]THEN A[j]与A[j+1]对换;其中 n为正整数,则最后一行的语句频度在最坏情况下是(C)。
A. O(n)B. O(nlogn)C. O(n3)D. O(n2)8.以下哪个数据结构不是多型数据类型(D)A.栈 B.广义表 C.有向图 D.字符串(始终是字符型的,不会存在其他类型)9.以下数据结构中,(A)是非线性数据结构A.树 B.字符串 C.队 D.栈二、判断题1.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
( A )2.算法可以用不同的语言描述,如果用C 语言或PASCAL语言等高级语言来描述,则算法实际上就是程序了。
数据结构课后习题(第1章)
![数据结构课后习题(第1章)](https://img.taocdn.com/s3/m/88a405cb2cc58bd63186bdde.png)
【课后习题】第1章绪论2011级计科(网工) 班学号:姓名:一、单项选择(每题2分,共44分)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、下列时间复杂度中最坏的是()。
A.O(1)B.O(m)C.O (1og2n)D.O(n2)10、下列时间复杂度中最好的是()。
A.O(1)B.O(m)C.O(1og2n)D.O(n2)11、记录中的各个数据项的类型()。
A.必须相同B.不必相同C.不能相同D.不确定12、已知一个算法的执行时间大约为8n+5n3,则其复杂度通常用()度量即可。
A、O(5n+2n3);B、O(2n3);C、O(n3);D、O(n+n3)。
13、通常设计一个算法设计时,应考虑使其达到()的目标A、正确、可读、健壮以及高效率和低存储;B、速度快和占用存储空间少;C、正确、速度快和占用存储空间少;D、具有输入和输出。
数据结构_第一阶段练习-齐了 江南大学考试题库答案 共3个阶段,这是其中一个阶段,答案在最后
![数据结构_第一阶段练习-齐了 江南大学考试题库答案 共3个阶段,这是其中一个阶段,答案在最后](https://img.taocdn.com/s3/m/d85af95303d8ce2f01662321.png)
江南大学网络教育第一阶段练习题考试科目:《数据结构》第章至第章(总分100分)__________学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一单选题 (共10题,总分值20分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。
)1. 设在一不带头结点的链队列中,front和rear分别为其队头和队尾指针,则删除一个结点的操作是(C )。
(2 分)A. rear=front->nextB. rear=rear->nextC. front=front->nextD. front=rear->next2. 下列说法中错误的是(B )。
(2 分)A. 数据对象是数据的子集B. 数据元素间关系在计算机中的映象即为数据的存储结构C. 非顺序映象的特点是借助指示元素存储地址的指针来表示数据元素间逻辑关系D. 抽象数据类型指一个数学模型及定义在该模型上的一组操作3. 下列不属算法特性的是(D )。
(2 分)A. 有穷性B. 确定性C. 零或多个输入D. 健壮性4. 判定一个栈顶指针为S且不带头结点的链栈为空栈的条件是( D)。
(2 分)A. SB. S->nextC. S->next==NULLD. !S5. 在长为n的顺序表中删除一个数据元素,平均需移动( D)个数据元素。
(2 分)A. nB. n-1C. n/2D. (n-1)/26. 设在一不带头结点的链队列中,front和rear分别为其队头和队尾指针,则判定该队中只有一个结点的条件是(C )。
(2 分)A. front->nextB. rear->nextC. front==rearD. front!=rear第1页/共5页。
2022年1月自考数据结构试题真题
![2022年1月自考数据结构试题真题](https://img.taocdn.com/s3/m/11e250dacf2f0066f5335a8102d276a2002960b3.png)
全国1月高等教育自学考试数据构造试题课程代码:02331第一部分选择题(共30分)一、单选题(本大题共15小题,每题2分,共30分)在每题列出旳四个备选项中只有一种是符合题目规定旳,请将其代码填写在题后旳括号内。
错选、多选或未选均无分。
1.数据元素及其关系在计算机存储器内旳表达,称为数据旳( )A.逻辑构造B.存储构造C.线性构造D.非线性构造2.某带头结点旳单链表旳头指针为head,鉴定该链表为非空旳条件是( )A.head==NULLB.head->next==NULLC.head!=NULLD.head->next!=NULL3.导致栈上溢旳操作是( )A.栈满时执行旳出栈B.栈满时执行旳入栈C.栈空时执行旳出栈D.栈空时执行旳入栈4.设数组A[m]为循环队列Q旳存储空间,front为队头指针,rear为队尾指针,则鉴定Q为空队列旳条件是( )A.(rear-front)%m= =1B.front= =rearC.(rear-front)%m= =m-1D.front= =(rear+1)%m5.假设S=″I AM A STUDENT″,则运算substr(S,4,8)旳成果为( )A.″M A S″B.″M A STUD″C.″A STUDEN″D.″STUD″6.在执行简朴旳串匹配算法时,最坏旳状况为每次匹配比较不等旳字符浮现旳位置均为( )A.模式串旳最末字符B.主串旳第一种字符C.模式串旳第一种字符D.主串旳最末字符7.从广义表L=(((d),c,d))中分解得到(d)旳操作为( )A.head(head(head(L)))B.head(tail(head(L)))C.tail(head(head(L)))D.tail(tail(head(L)))8.假设一棵完全二叉树按层次遍历旳顺序依次寄存在数组BT[m]中,其中根结点寄存在BT[0],若BT[i]中旳结点有左孩子,则左孩子寄存在( )A.BT[i/2]B.BT[2*i-1]C.BT[2*i]D.BT[2*i+1]9.右图所示二叉树旳中序序列是( )A.DHEBAFIJCGB.DHEBAFJICGC.DBHEAFCJIGD.DBHEAFJICG10.连通图是指图中任意两个顶点之间( )A.都连通旳无向图B.都不连通旳无向图C.都连通旳有向图D.都不连通旳有向图11.下图所示带权无向图旳最小生成树旳权为( )A.14B.15C.17D.1812.对记录序列(314,298,508,123,486,145)依次按个位和十位进行两趟基数排序之后所得成果为( )A.123,145,298,314,486,508B.508,314,123,145,486,298C.486,314,123,145,508,298D.298,123,508,486,145,31413.在待排核心字序列基本有序旳前提下,效率最高旳排序措施是( )A.直接插入排序B.迅速排序C.直接选择排序D.归并排序14.在下列各棵二叉树中,二叉排序树是( )15.采用ISAM或VSAM组织旳文献是( )A.索引非顺序文献B.顺序文献C.索引顺序文献D.散列文献第二部分非选择题(共70分)二、填空题(本大题共10小题,每题2分,共20分)请在每题旳空格中填上对旳答案。
数据结构阶段复习题(1)
![数据结构阶段复习题(1)](https://img.taocdn.com/s3/m/9cc0542daaea998fcc220e2e.png)
• 将两个各有n个元素的有序表归并成一个有序表 ,最少的比较次数是( )
– A. n-1 – C. 2n-1 B. n D. 2n
假设一个算术表达式中可以包含以下三种括号:“(”和“)”、"*”和“+”、“,” 和“-”,并且这三种括号可以按照任意的次序嵌套使用。 下面仅考虑表达式中括 号的匹配关系,其他问题暂时忽略。例如,表达式“[a.(b.5)+*c*,-+”中的括号 是完全匹配的,而表达式“[a-(b-5+))*c”中的括号不是完全匹配的,因为“(”与 “+”不能匹配,而且多了一个“)”,即缺少一个与“)”相匹配的“(”。 函数 ifmatched (char expr[])的功能是用栈来判断表达式中的括号是否匹配,表达式以 字符串的形式存储在字符数组expr中。若表达式中的括号完全匹配,则该函数的 返回值为Matched,否则返回值为Mismatched。 该函数的处理思路如下: (1)设置 一个初始为空的栈,从左至右扫描表达式。 (2)若遇上左括号,则令其入栈;若 遇上右括号,则需要与栈顶的左括号进行匹配。 (3)若所遇到的右括号能与栈顶 的左括号配对,则令栈顶的左括号出栈,然后继续匹配过程;否则返回 Mismatched,结束判断过程。 (4)若表达式扫描结束,同时栈变为空,则说明表 达式中的括号能完全匹配,返回Matched。 函数ifMatched中用到了两种用户自定 义数据类型BOOL 和STACK,其中,BOOL类型的定义如下: typedef enum {Mismatched, Matched} BOOL; STACK(即栈类型)的定义省略,栈的基本操作的 函数原型说明如下: void InitStack(STACK *S):初始化一个空栈。 void Push(STACK *S,char e):将一个字符压栈,栈中元素数目增1。 void Pop(STACK *S):栈顶元素 出栈,栈中元素数目减1。 char Top(STACK S):返回非空栈S的栈顶元素值,栈中 元素数目不变。 int IsEmpty(STACK S):若S是空栈,则返回1,否则返回0。
数据结构(C语言版)第1章习题答案
![数据结构(C语言版)第1章习题答案](https://img.taocdn.com/s3/m/38b1bd2f42323968011ca300a6c30c225901f034.png)
数据结构(C语言版)第1章习题答案1第一章概论自测题答案一、填空题1. 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科。
2. 数据结构被形式地定义为(D, R ),其中D 是数据元素的有限集合,R 是D 上的关系有限集合。
3. 数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。
4. 数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。
5. 线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。
6.在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有 1个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有1个后续结点。
7. 在树形结构中,树根结点没有前驱结点,其余每个结点有且只有 1 个前驱结点;叶子结点没有后续结点,其余每个结点的后续结点数可以任意多个。
8. 在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。
9.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引和散列。
10. 数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。
11. 一个算法的效率可分为时间效率和空间效率。
二、单项选择题( B )1. 非线性结构是数据元素之间存在一种:A )一对多关系B )多对多关系C )多对一关系D )一对一关系( C )2. 数据结构中,与所使用的计算机无关的是数据的结构;A) 存储 B) 物理 C) 逻辑 D) 物理和存储( C )3. 算法分析的目的是:A) 找出数据结构的合理性B) 研究算法中的输入和输出的关系C) 分析算法的效率以求改进 D) 分析算法的易懂性和文档性( A )4. 算法分析的两个主要方面是:A) 空间复杂性和时间复杂性 B) 正确性和简明性C) 可读性和文档性 D) 数据复杂性和程序复杂性( C )5. 计算机算法指的是:A) 计算方法 B) 排序方法 C) 解决问题的有限运算序列 D) 调度方法( B )6. 计算机算法必须具备输入、输出和等5个特性。
《数据结构》(C语言版)第一章绪论习题及答案
![《数据结构》(C语言版)第一章绪论习题及答案](https://img.taocdn.com/s3/m/8f4209df7d1cfad6195f312b3169a4517723e585.png)
《数据结构》(C语言版)第一章绪论习题及答案一、单选题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、以下属于逻辑结构是 ______。
A、双链表B、单链表C、顺序表D、有序表10、以下不属于存储结构是______。
A、顺序表B、线性表C、邻接表D、单链表11、在计算机中存储数据时,通常不仅要存储各数据元素的值,而且还有存储 ______。
A、数据元素之间的关系B、数据元素的类型C、数据的处理方法D、数据的存储方法12、数据结构在计算机内存中的表示是指 ______。
A、数据的逻辑结构B、数据结构C、数据元素之间的关系D、数据的存储结构13、在数据的存储中,一个节点通常存储一个 ______。
A、数据结构B、数据元素C、数据项D、数据类型14、在决定选取任何类型的存储结构时,一般不多考虑 ______。
数据结构课后习题第一章
![数据结构课后习题第一章](https://img.taocdn.com/s3/m/53a637d705a1b0717fd5360cba1aa81144318f25.png)
第1篇一、引言借壳投标,是指投标人在不具备投标资格或者投标条件不符合要求的情况下,通过与其他企业或者个人合作,借用其资质或者条件参与投标的行为。
借壳投标在我国招投标市场中较为普遍,但因其存在诸多法律风险,本文将就借壳投标的法律后果进行分析。
二、借壳投标的法律后果1. 违反招投标法律法规借壳投标违反了《中华人民共和国招标投标法》等相关法律法规,投标人在投标过程中,必须具备投标资格和符合投标条件。
借壳投标行为,不仅损害了公平竞争的市场环境,还可能导致中标无效。
2. 民事责任(1)赔偿损失:借壳投标行为给招标人、其他投标人以及国家利益造成损失的,投标人应当依法承担赔偿责任。
(2)违约责任:投标人借壳投标,违反了招投标合同的相关约定,应当承担违约责任。
3. 刑事责任(1)对投标人:借壳投标行为涉嫌犯罪的,如串通投标罪、虚假投标罪等,投标人可能面临刑事责任。
(2)对招标人、评标委员会成员等:若招标人、评标委员会成员等参与借壳投标,涉嫌犯罪的,也可能承担刑事责任。
4. 行政责任(1)行政处罚:借壳投标行为违反了招投标法律法规,投标人和相关责任人员可能面临行政处罚,如罚款、取消投标资格等。
(2)行政处分:若招标人、评标委员会成员等参与借壳投标,涉嫌违纪的,可能面临行政处分。
5. 信誉损失借壳投标行为损害了投标人的信誉,可能导致其在招投标市场中的竞争力下降,甚至被市场淘汰。
三、案例分析某施工单位甲,因不具备某工程项目的投标资格,便与具有投标资格的乙公司达成合作协议,由甲公司借用乙公司的资质参与投标。
在投标过程中,甲公司被认定为借壳投标,导致中标无效。
随后,甲公司因违反招投标法律法规,被罚款10万元,并取消其一年内的投标资格。
四、防范措施1. 加强法律法规宣传,提高投标人的法律意识。
2. 严格审查投标人资质,确保投标行为合法合规。
3. 建立健全招投标监督机制,加大对借壳投标行为的查处力度。
4. 完善招投标合同条款,明确违约责任。
数据结构试卷1(含答案)
![数据结构试卷1(含答案)](https://img.taocdn.com/s3/m/647c5fd90342a8956bec0975f46527d3240ca623.png)
数据结构试卷1(含答案)数据结构试卷一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下列选项中与数据存储结构无关的术语是()A.顺序表B.链表C.链队列D.栈2.将两个各有n个元素的有序表归并成一个有序表,最少的比较次数是()A.n-1B.nC.2n-1D.2n3.已知循环队列的存储空间大小为m,队头指针front指向队头元素,队尾指针rear指向队尾元素的下一个位置,则向队列中插入新元素时,修改指针的操作是()A.rear=(rear-1)%m;B.front=(front+1)%m;C.front=(front-1)%m;D.rear=(rear+1)%m;4.递归实现或函数调用时,处理参数及返回地址,应采用的数据结构是()A.堆栈B.多维数组C.队列D.线性表5.设有两个串p和q,其中q是p的子串,则求q在p中首次出现位置的算法称为()A.求子串B.串联接C.串匹配D.求串长6.对于广义表A,若head(A)等于tail(A),则表A为()A.( )B.(( ))C.(( ),( ))D.(( ),( ),( ))7.若一棵具有n(n>0)个结点的二叉树的先序序列与后序序列正好相反,则该二叉树一定是()A.结点均无左孩子的二叉树B.结点均无右孩子的二叉树C.高度为n的二叉树D.存在度为2的结点的二叉树8.若一棵二叉树中度为l的结点个数是3,度为2的结点个数是4,则该二叉树叶子结点的个数是()A.4B.5C.7D.89. 某算法有3个程序段,第一程序段的执行次数为错误!未找到引用源。
,第二个程序段执行次数为4n,第三个程序段的执行次数为0.06错误!未找到引用源。
,则该算法的时间复杂度为()。
A.O(n) B.O(错误!未找到引用源。
) C.O(错误!未找到引用源。
) D.O (错误!未找到引用源。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
江南大学现代远程教育第一阶段练习题及答案
考试科目:《数据结构》第一章至第四章(总分100分)
______________学习中心(教学点)批次:层次:
专业:学号:身份证号:
姓名:得分:
一、选择题(每题3分,共30分)
1、在树形结构中,数据元素间存在()的关系。
A、一对一B、一对多C、多对多D、除同属一个集合外别无关系
2、下列说法中错误的是()。
A、数据对象是数据的子集
B、数据元素间关系在计算机中的映象即为数据的存储结构
C、非顺序映象的特点是借助指示元素存储地址的指针来表示数据元素间逻辑关系
D、抽象数据类型指一个数学模型及定义在该模型上的一组操作
3、下列不属算法特性的是()。
A、有穷性B、确定性C、零或多个输入D、健壮性
4、在长为n的顺序表中删除一个数据元素,平均需移动()个数据元素。
A、n B、n-1 C、n/2 D、(n-1)/2
5、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
A、顺序表B、双链表C、带头结点的双向循环链表D、单循环链表
6、在一个可存放n个数据元素的顺序栈中,假设以高地址端为栈底,以top为栈顶指针,当向栈中压入一个数据元素时,top的变化是()。
A、不变B、top=n C、top++ D、top--
7、设在一不带头结点的链队列中,front和rear分别为其队头和队尾指针,则删除一个结点的操作是()。
A、rear=front->next B、rear=rear->next C、front=front->next D、front=rear->next 8、判定一个栈顶指针为S且不带头结点的链栈为空栈的条件是()。
A、S B、S->next C、S->next==NULL D、!S
9、设在一不带头结点的链队列中,front和rear分别为其队头和队尾指针,则判定该队中只有一个结点的条件是()。
A、front->next B、rear->next C、front==rear D、front!=rear
10、串的长度是指()。
A、串中所含不同字母的个数
B、串中所含字符的个数
C、串中所含不同字符的个数
D、串中所含非空格字符的个数
二、(10分)
设n为正整数,试确定如下程序段中语句“x++;”的频度。
for (i=1;i<=n;i++)
for (j=1;j<=i;j++)
for (k=1;k<=n;k++)
x++;
三、(15分)
设单链表L如图所示:
画出执行如下程序段后,各指针变量及单链表L的示意图。
p=L;
for(i=1;i<=3;i++){
q=(LinkList)malloc(sizeof(LNode));
q->data=i*3;
q->next=p->next;
p->next=q;
}
四、(10分)
设元素的入栈次序为a、b、c、d,且在入栈的过程中允许出栈,试写出所有不可能得到的出栈序列。
五、(15分)
设a='data structure',b='computer',c='demo',试求:
⑴ StrLength(a)的返回值;
⑵执行StrInsert(b,4,c)后串b的值;
⑶ Index(a,'u',10)的返回值;
⑷执行Replace(a,'structure',b)后串a的值;
⑸执行SubString(s,b,3,3)后串s的值。
六、(20分)
已知单链表L中含有三类字符的数据元素,即字母字符、数字字符和其他字符,试编写算法将L分割为三个循环链表,其中每个循环链表只含一类字符。
答案
一、选择题
1、B
2、B
3、D
4、D
5、A
6、D
7、C
8、D
9、C
10、B
二、设n为正整数,试确定如下程序段中语句“x++;”的频度。
for (i=1;i<=n;i++)
for (j=1;j<=i;j++)
for (k=1;k<=n;k++)
x++;
答:
2)1
(2
n
n
三、设单链表L如图所示:
画出执行如下程序段后,各指针变量及单链表L的示意图。
p=L;
for(i=1;i<=3;i++){
q=(LinkList)malloc(sizeof(LNode));
q->data=i*3;
q->next=p->next;
p->next=q;
}
答:
四、设元素的入栈次序为a、b、c、d,且在入栈的过程中允许出栈,试写出所有不可能得到的出栈序列。
答:
dabc dacb dbac dbca dcab cadb cabd cdab bdac adbc
五、设a='data structure',b='computer',c='demo',试求:
⑴ StrLength(a)的返回值;
⑵执行StrInsert(b,4,c)后串b的值;
⑶ Index(a,'u',10)的返回值;
⑷执行Replace(a,'structure',b)后串a的值;
⑸执行SubString(s,b,3,3)后串s的值。
答:
⑴14
⑵'comdemoputer'
⑶12
⑷'data computer'
⑸'mpu'
六、已知单链表L中含有三类字符的数据元素,即字母字符、数字字符和其他字符,试编写算法将L分割为三个循环链表,其中每个循环链表只含一类字符。
答:
void partition(LinkList &L,LinkList &LC,LinkList &LN,LinkList &LO){
//L带头结点,LC为含字母字符的循环链表,LN为含数字字符的循环链表,
//LO为含其他字符的循环链表
InitCL(LC);
InitCL(LN);
InitCL(LO); //对三个循环链表进行初始化
p=L->next;//p指向第一个结点
while (p){
q=p;
p=p->next;//q指向当前待处理结点,p指向剩余链表
if (q->data>=’A’ && q->data<=’Z’|| q->data>=’a’ && q->data<=’z’){ q->next=LC->next;
LC->next=q;
}//字母字符入循环链表LC
else if (q->data>=’0’ && q->data<=’9’){
q->next=LN->next;
LN->next=q;
}//数字字符入循环链表LN
else {
q->next=LO->next;
LO->next=q;
}//其他字符入循环链表LO
}//while
free(L);//释放单链表L的头结点
}//partition
void InitCL(LinkList &L){
//对循环链表进行初始化
L=(LinkList)malloc(sizeof(LNode));
if (!L) exit(OVERFLOW);
L->next=L;
}。