数据结构课程试卷2卷 苏州大学
苏州大学-数据结构-课程期中考试答案

苏州大学数据结构课程期中考试(共6页)学院计算机专业计算机科学与技术成绩____________________ 班级11计科学号_____________姓名_____________日期2012.11_ 一、填空(14*2 分)1x=n;y=0;while (x>=y*y)y=y+1;2、对于顺序存储的栈,因为栈的空间是有限的,在进行入栈运算时,可能发生栈的上溢(overflow),在进行出栈 _运算时,可能发生栈的下溢(underflow)。
3、以顺序结构实现的双栈类中,其私有数据成员数组S[0..n-1]存放两个栈中的所有元素,top1和top2分别指向两个栈的栈顶位置,入栈1时top1由小到大,入栈2时top2由大到小,则判断双栈栈满的条件是top1+1>=top2 ,双栈栈空的条件是top1==-1 && top2==n。
4、完成链式存储结构下Queue类的append方法,其中front和rear指针分别指示队首和队尾结点:Error_code Queue :: append(const Queue_entry &item){Node *new_rear = new Node(item);if (new_rear == NULL) return overflow;if (rear == NULL) front=rear=new_rear; ;else {rear->next=new_rear; ;rear = new_rear;}return success;}5、如果一个函数直接或间接地调用自己,则称这个函数是一个递归函数。
6、在一个长度为n的顺序表中的第position(0≤position<n)个位置删除某个元素时,需移动n-position-1个元素。
7、在线性表改进的单链表实现方法中,我们定义了一个current指针指向最近访问过的结点,请解释这样做的好处:在对表中元素进行访问时,不需要每次都从头开始,在顺序访问或从前往后的访问中能提供操作效率。
2022年苏州大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)

2022年苏州大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题1、将两个各有N个元素的有序表归并成一个有序表,其最少的比较次数是()。
A.NB.2N-1C.2ND.N-12、下列说法不正确的是()。
A.图的遍历是从给定的源点出发每个顶点仅被访问一次B.遍历的基本方法有两种:深度遍历和广度遍历C.图的深度遍历不适用于有向图D.图的深度遍历是一个递归过程3、连续存储设计时,存储单元的地址()。
A.一定连续B.一定不连续C.不一定连续D.部分连续,部分不连续4、下面关于串的叙述中,不正确的是()。
A.串是字符的有限序列B.空串是由空格构成的串C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储5、向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行()。
A.h->next=sB.s->next=hC.s->next=h;h->next=sD.s->next=h-next;h->next=s6、下列关于无向连通图特性的叙述中,正确的是()。
Ⅰ.所有的顶点的度之和为偶数Ⅱ.边数大于顶点个数减1 Ⅲ.至少有一个顶点的度为1A.只有Ⅰ B.只有Ⅱ C.Ⅰ和Ⅱ D.Ⅰ和Ⅲ7、已知字符串S为“abaabaabacacaabaabcc”,模式串t为“abaabc”,采用KMP算法进行匹配,第一次出现“失配”(s!=t)时,i=j=5,则下次开始匹配时,i和j的值分别()。
A.i=1,j=0 B.i=5,j=0 C.i=5,j=2 D.i=6,j=28、在下述结论中,正确的有()。
①只有一个结点的二叉树的度为0。
②二叉树的度为2。
③二叉树的左右子树可任意交换。
④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。
A.①②③B.⑦③④C.②④D.①④9、有关二叉树下列说法正确的是()。
A.二叉树的度为2B.一棵二叉树的度可以小于2C.二叉树中至少有一个结点的度为2D.二叉树中任何一个结点的度都为210、数据序列(8,9,10,4,5,6,20,1,2)只能是下列排序算法中的()的两趟排序后的结果。
数据结构课程试卷10卷参考答案

苏州大学数据结构课程10卷参考答案(共 5 页)院系专业 __________一、填空题(每题3分,共30分)1、7500;6252、10883、线性表;入栈;出栈4、n2+1 ; 2k-15、hdiebjkfca6、 227、深度优先;广度优先;10;从源点到汇点路径长度之和最长的路径8、299、1; 710、wpl=(2+5)*3+(7+9+13)*2=79 。
二、应用题(每题8分,共40分)因为队列的入队和出队在顺序队列的两端进行,可能造成队列空间未用完但队列指针已经越界,从而产生虚溢出。
(2分)解决虚溢出的方法是采用循环队列。
(2分)队空条件为:q.front=q.rear (2分)队满条件为:q.front=(q.rear+1)mod m (2分)2、(1)(4(2)(2分)(3)ASL=(1+1+2+1+2+1+1+3+1+3+1)/11=17/11 (2分)3、最小生成树:(4分)邻接矩阵:1 2 3 4 5 60 10 0 0 15 1210 0 5 6 0 70 5 0 6 0 00 6 6 0 0 815 0 0 10 0 1212 7 0 8 12 0(4分)4、(1(4分)(2)R1={4,5,6,7,8,9,16,18,20}。
(2分)(3)R2={5,6,4,9,8,18,20,16,7}。
(2分)三、算法设计题(每题10 分,共30分)1、假设用带头结点的单链表作为线性表的存储结构,编写在线性表中第i个元素前插入值为x的元素的算法。
deleteinsert(la,x) /*从表la中删除值为x的元素*/linklist *la;/*la分别为linklist类型的指针变量*/{linklist *p,*q;p=la;q=p->next; (3分)while (q!=null)if (q->data=x) {p->next=q->next ;dispose(q);q=p->next;} (4分)else {p=q;q=q->next;} (3分)2、int count(t,num)bitree *t;int num;{if (t) (2分)if ((t->lchild!=null) && (t->lchild==null)||(t->lchild==null) && (t->lchild!=null)) (2分)num=num+1;count(t->lchild,num); (2分)count(t->rchild,num); (2分)return(num); (2分)} /*count */3、#define INFINIY MAX_WEIGHTV oid converttu(AdjGraph *G1,ALGraph *G2)int{i,j;LinkNode *p;G2->vernum=G1->vernum;G2->e=G1->e; (3分)for (i=0;i< G1->vernum;i++){G2->adjlist[i].vexdata=G1->vexs[i];G2->adjlist[i].first=null;}for (i=0;i< G1->vernum;i++)for (j=0;j< G1->vernum;j++)if (G1->adj[i][j]<INFINITY){p=(LinkNode *)malloc(sizeof(LinkNode)) (3分)p->weight=adj[i][j];p->adjvex=j;p->next=G2->adjlist[i].first;G2->adjlist[I].first=p;}return; (3分)}O(n2) (1分)。
2012年-2015年苏州大学872数据结构与操作系统考研真题试题试卷

第 4 页,共 9 页
芝士传媒 × 题源库
...让知识更美味...
第 5 页,共 9 页
芝士传媒 × 题源库
...让知识更美味...
第 6 页,共 9 页
芝士传媒 × 题源库
...让知识更美味...
第 7 页,共 9 页
芝士传媒 × 题源库
...让知识更美味...
第 8 页,共 9 页
芝士传媒 × 题源库
...让知识更美味...
第 9 页,共 9 页
芝士传媒 × 题源库
...让知识更美味...
目 录
2012 年苏州大学 872 数据结构与操作系统考研真题试题试卷·····································2 2013 年苏州大学 872 数据结构与操作系统考研真题试题试卷·····································4 2014 年苏州大学 872 数据结构与操作系统考研真题试题试卷·····································6 2015 年苏州大学 872 数据结构与操作系统考研真题试题试卷·····································8
第 1 页,共 9 页
芝士传媒 × 题源库
...让知识更美味...
第 2 页,共 9 页来自芝士传媒 × 题源库
...让知识更美味...
第 3 页,共 9 页
芝士传媒 × 题源库
...让知识更美味...
数据结构-试卷二及答案

数据结构-试卷二及答案一、判断(每小题 1 分,共 10 分) 1.数据的存储结构是数据的逻辑结构的存储映象,不仅要存储数据元素的值,还要存储元素之间的相互关系。
2.用顺序表来存储线性表时,不需要另外开辟空间来保存数据元素之间的相互关系。
3.完全二叉树的叶子结点只能出现在最后一层上。
4.折半查找方法要求待查表必须是有序的顺序表。
5.在有向图 G 中, V 2 , V 1 和 V 1 , V 2 是两条不同的边。
6.图的最小生成树是唯一的。
7.从循环单链表的某一结点出发,只能找到它的后继结点,不能找到它的前趋结点。
8.在单链表中,头结点是必不可少的。
9.对快速排序来说,初始序列为正序和反序,都是最坏情况。
10.广义表是特殊的线性表。
二、选择(每题 1 分,共 15 分) 1.设栈 S 和队列 Q 的初始状态均为空,元素 abcdefg 依次进入栈 S 。
若每个元素出栈后立即进入队列 Q ,且 7 个元素出队的顺序是bdcfeag ,则栈 S 的容量至少是()。
A.1 B.2 C.3 D.4 2.下列线索二叉树1/ 8中(用虚线表示线索),符合后序线索树定义的是( )。
3.已知广义表 A= (( a,b ) ,(c,d) ) , 则 head(A) 等于 ( )。
A.(a,b) B.((a,b)) C.a,b D.a 4.设字符串s1=‘ABCDEFG’,s2=‘PQRST’, 则运算s=strcat(strsub(s1,2,strlen(s2)),strsub (s1,strlen(s2),2))后结果为()。
A.BCQR B.BCDEF C.BCDEFG D.BCDEFEF 5.具有 8 个顶点的连通图的深度优先生成树,其边数为()。
A.8 B.9 C.7 D.6 6.算法分析的两个主要方面是()。
A.空间复杂性和时间复杂性 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 7.下列四种排序中()的空间复杂度最大。
数据结构试卷试题及答案

数据结构试卷试题及答案一、选择题(每题5分,共40分)1. 数据结构是研究数据元素的()A. 存储结构B. 处理方法C. 逻辑结构D. 所有以上内容答案:D2. 在数据结构中,通常采用()方式来表示数据元素之间的逻辑关系。
A. 顺序存储结构B. 链式存储结构C. 索引存储结构D. 散列存储结构答案:B3. 下面哪一个不是栈的基本操作?()A. 入栈B. 出栈C. 判断栈空D. 获取栈顶元素答案:D4. 下面哪一个不是队列的基本操作?()A. 入队B. 出队C. 判断队列空D. 获取队头元素答案:D5. 下面哪一个不是线性表的特点?()A. 有且只有一个根节点B. 每个节点最多有一个前驱和一个后继C. 数据元素类型相同D. 数据元素类型可以不同答案:D6. 在下列哪种情况中,使用链式存储结构比顺序存储结构更合适?()A. 数据元素经常插入和删除B. 数据元素大小不固定C. 数据元素个数不确定D. 所有以上情况答案:D7. 下面哪一个不是树的遍历方式?()A. 前序遍历B. 中序遍历C. 后序遍历D. 翻转遍历答案:D8. 在下列哪种情况中,使用散列存储结构比其他存储结构更合适?()A. 数据元素个数较少B. 数据元素查找频繁C. 数据元素插入和删除频繁D. 数据元素大小不固定答案:B二、填空题(每题5分,共30分)9. 栈是一种特殊的线性表,它的插入和删除操作都限定在表的一端进行,这一端称为______。
答案:栈顶10. 队列是一种特殊的线性表,它的插入操作在表的一端进行,这一端称为______,而删除操作在另一端进行,这一端称为______。
答案:队尾、队头11. 二叉树中的节点包括______和______。
答案:根节点、子节点12. 在图的存储结构中,邻接矩阵表示法用______个一维数组来表示图中各个顶点之间的关系。
答案:两个13. 散列存储结构中,关键码到存储地址的映射方法称为______。
数据结构_苏州大学中国大学mooc课后章节答案期末考试题库2023年

数据结构_苏州大学中国大学mooc课后章节答案期末考试题库2023年1.设p为指向单循环链表上某内部结点的指针,则查找p指向结点的直接前驱结点时答案:查找时间为O(n)2.In a of Height h, all nodes that are at a level less than h have two childreneach。
答案:full binary tree3.The quicksort is in the worst case.答案:4.已知一个有向图的邻接矩阵,要删除所有以第i号顶点结束的有向边,应该答案:将邻接矩阵的第i列元素全部置为05.一个哈希函数被认为是“好的”,如果它满足条件答案:所有哈希地址均在表长范围内,且计算简单,且哈希地址分布均匀6.查找顺序表中i号元素的直接前驱结点时,___________。
答案:查找时间为O(1)7.对一棵树进行的先根遍历操作与对这棵树所对应的二叉树进行________遍历操作结果相同。
答案:层次8.下面给出的四种排序算法中,______________ 是稳定的排序。
答案:插入排序9.已知n个顶点e条边的无向图,则于它的存储结构,下列说法正确的是:顶点结点和边结点数分别为: _____________________。
答案:其邻接表中有2e个边结点10.二分查找只适用于的查找。
答案:有序的顺序表11.归并排序和选择排序算法是稳定的排序算法。
答案:错误12.n个结点的完全二叉树中共有n/2个非叶结点。
答案:错误13.经常要对线性表进行i号元素及其前驱元素的读写,最合适的存储方案是双向链表。
答案:错误14.堆是一棵二叉查找树答案:错误15.对n个正整数进行排序,每个正整数的数位最多k位,则基数排序的时间复杂度为O(nk)。
答案:正确16.栈的操作特点是(用英文字母缩写表示)答案:FILO##%_YZPRLFH_%##LIFO17.二叉树的层次遍历算法需要用到的辅助数据结构是答案:队列18.利用堆排序算法进行排序时,被排序的数据表的存储结构是(填:顺序或链式)。
数据结构考试试题及答案

数据结构考试试题及答案一、选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构通常使用什么类型的数据结构来实现?A. 栈B. 队列C. 数组D. 链表答案:C2. 下列选项中,哪一个不是二叉树的性质?A. 任意节点的左子树和右子树的深度可能不同B. 任意节点的左子树和右子树的深度相同C. 任意节点的左子树和右子树的节点数可能不同D. 任意节点的左子树和右子树的节点数相同答案:B3. 哈希表的冲突解决方法不包括以下哪种?A. 开放定址法B. 链地址法C. 线性探测法D. 排序法答案:D4. 以下哪种排序算法的时间复杂度最低?A. 冒泡排序B. 快速排序C. 插入排序D. 归并排序答案:B5. 在图的遍历算法中,深度优先搜索(DFS)使用的栈是:A. 系统栈B. 显式栈C. 隐式栈D. 以上都不是答案:B6. 以下哪种数据结构可以有效地实现稀疏矩阵的存储?A. 顺序存储B. 链表C. 散列D. 邻接矩阵答案:C7. 在二叉搜索树中,插入一个新节点后,树的平衡因子可能为:A. -2B. 0C. 2D. 3答案:A8. 堆数据结构中,父节点的值总是大于其子节点的值,这种堆被称为:A. 最小堆B. 最大堆C. 完全二叉树D. 满二叉树答案:B9. 以下哪个算法不是动态查找表的算法?A. 直接查找B. 二分查找C. 斐波那契查找D. 哈希查找答案:A10. 在图的遍历算法中,广度优先搜索(BFS)使用的栈是:A. 系统栈B. 显式栈C. 隐式栈D. 以上都不是答案:C二、填空题(每题2分,共20分)1. 在数据结构中,栈是一种______结构,遵循后进先出(LIFO)的原则。
答案:线性2. 一个具有n个顶点的无向图的边数最多为______。
答案:n*(n-1)/23. 快速排序算法的时间复杂度在最坏情况下为______。
答案:O(n^2)4. 在哈希表中,如果一个关键字的哈希地址已经被占用,则需要进行______。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
苏州大学数据结构课程试卷2卷(共 5页)
考试形式:闭卷年月院系 ______________ 年级 ______________ 专业 ______________
学号 ______________ 姓名 ______________ 成绩 ______________
一、填空(2分×16)
1、下面程序段的时间复杂度为____mn_______。
f or (i=0; i<m; i++)
for (j=0; j<n; j++)
A[i][j]=i*j;
2、设一个数列为1,2,3,4,5,6,通过栈结构可以排成的顺序数列为
______________________________(写2个),不可以排成的顺序数列为
_______________________(写2个)。
3、算术表达式A/(B*(E+F))-T**K的逆波兰表示式为____ABEF+*/TK**-
______________________。
4、将10阶下三角矩阵A[1..10][1..10]压缩到一维数组SA[0..54]中,并采用行序为主序,则元素A[5][4]在数组SA中的下标为__________________。
5、设字符串s1='abcde',s2='opqr', 则Concat(s1,s2)=______________, Index(s2,'p')=_______。
6、已知一棵二叉树的中序遍历结果为DBHEAFICG,后序遍历结果为DHEBIFGCA,则先序遍历结果为_________________________。
7、设有序表有100个元素,在折半查找时,最大比较次数是_________,最小比较次数是_____________。
8、设哈希函数H(k)=k mod 11,哈希表的地址空间为0~11,假定哈希表中已填有关键字分别为17,60,29的记录。
若采用二次探测再散列,则关键字为39的第四个记录应填入位置______________。
若不采用二次探测再散列,而是采用线性探测再散列,则则关键字为39的第四个记录应填入位置______________。
9、设有关键字输入序列:(45,25,80,60,18,30,12,40,70),生成一棵二叉查找树,在等查找概率情况下查找成功时的平均查找长度为______________。
10、以下为链式Stack的拷贝构造函数,请在其中的下划线处填上适当的内容。
Stack :: Stack(const Stack &original) // copy constructor
/* Post: The Stack is initialized as a copy of Stack original. */
{
Node *new_copy, *original_node = __ _______;
if (original_node == NULL) top_node = NULL;
else { // Duplicate the linked nodes.
top_node = new_copy = ______________________;
while (original_node->next != NULL) {
original_node = original_node->next;
new_copy->next = new Node(original_node->entry);
________________________;
}
}
}
二、应用题
1、对于如图所示的树,试回答:(1)树的度是多少?树的深度是多少?(2)哪些为非终端结点?(3)画出其孩子兄弟链表。
(4)将该树转换为二叉树。
(10分)
A
B C D
F
E G J
H
I
K
A
2、以递归树形式画出汉诺塔递归函数move(3,1,2,3)的执行过程。
(8分)
3、已知如图所示带权有向图G ,(1)给出邻接矩阵和邻接表;(2)从结点V1出发分别对G 进行深度优先搜索和广度优先搜索,给出结点序列;(3)给出G 的一个拓扑序列。
(10分)
23
18
7
56A 4
4、(1)设一组记录的关键字序列为(25,50,15,35,80,85,20,40,36,70),对其进行2-路归并排序,写出排序过程。
(2)在堆排序、快速排序和归并排序三种排序方法中,若从节省存储空间考虑,则应首选哪种方法?若只从算法稳定性考虑,则应选取哪种方法?若只从最坏情况下排序最快并且要节省内存考虑,应选取哪种方法?(10分)
三、算法设计题
1、写出循环队列的类定义,并编写代码,实现循环队列的入队和出队方法。
(10分)
class Queue(总10分)
{public: (4分)
Queue();
bool empty();
bool full();
Error_code Append(Qentry &item);
Error_code serve();
Error_code retrieve(Qentry &item);
Private:
int rear;
int length;
Qentry entry[Maxq];
}
Error_code append(Qentry &item) {
if (length= =maxq) return OVERFLOW;
rear=(rear+1) % maxq;
entry[rear]=e;
length++;
return OK;
} (3分)
Error_code serve(Qentry &item) {
if (length= =0) return ERROR;
head=((rear+ maxq)-length+1) % maxq; item=entry[head];
length--;
return OK;
} (3分)
2、编写算法,在兄弟孩子链表表示的树中求叶子结点数。
(10分)
树的孩子兄弟链表定义:typedef struct CSNode{
ElemType data;
Struct CSNode *firstchild, *nextsibling;
} CSNode, *CSTree;
int tree_leafcount (CSTree T );
3、n个顶点的有向图的邻接表定义如下:
typedef struct ArcNode
{ int adjvex ;
struct ArcNode *nextarc ;
} ArcNode ;
typedef struct VNode
{ vertextype data ;
Arcnode *firstarc ;
} VNode ;AdjList[MAX_VERTEX_NUM] ;
typedef struct{
AdjList vertices;
int vexnum,arcnum;
}ALGraph;
请写出计算图中出度为2的顶点个数的算法。
(10分)
int graph_count(ALGraph G);。