东南大学数据结构试卷
东南大学数据结构试卷A
共 11 页 第1页东 南 大 学 考 试 卷(A 卷) 课程名称 数据结构 考试学期 10-11-3 得分 适用专业 吴健雄学院610 考试形式 闭卷 考试时间长度 120分钟自 觉 遵 守 考 场 纪 律 如 考 试 作 弊 此 答卷无 效一、选择题(每题1分,共5分)1.设有一个二维数组A[m][n],如果A[0][0]的首地址为644(10进制),A[2][2]的首地址为676,每个元素占一个字节,则A[4][5]的首地址为()。
A.692 B.626 C.709 D.7242.若让元素1,2,3依次但并非连续进栈,则哪种出栈次序是不可能的()A.3,2,1 B.2,1,3C.3,1,2 D.1,2,33.设完全二叉树有82个结点,从根结点开始顺序编号,根节点为1号,其他结点自上向下,同一层次自左向右连续编号。
则第41号结点的双亲结点的编号为()A.20 B.21 C.81 D.824.采用对半搜索算法搜索长度为n的有序表,元素的平均搜索长度为()A.O(n2) B.O(n) C.O(n log2n) D.O(log2n)5.采用邻接表存储的图的深度优先遍历算法类似于二叉树的()A.中序遍历B.前序遍历C.后序遍历D.按层次遍历二、判断题(每题1分,共5分)1.邻接表只能用于有向图的存储,邻接矩阵对于有向图和无向图的存储都适用。
()2.直接选择排序是一种不稳定的排序方法。
()3.在用散列表存储关键码集合时,可以用双散列法寻找下一个空桶。
在设计再散列函数时,要求计算出的值与表的大小m互质。
()4.连通分量是无向图中的极小连通子图。
()5.若有一个叶子节点是二叉树中某子树的前序遍历结果序列的最后一个结点,它一定是该子树的中序遍历结果序列的最后一个结点。
()共11页第2页三、填空题(每空1分,10分)1.每次从表的无序部分取出一个元素,把它插入到表的有序部分的适当位置,此种排序方法叫作(1)排序;每次从表的无序部分中挑选出一个最小或最大元素,把它与表的有序部分的后一元素交换,此种排序方法叫作(2)排序。
(完整word版)数据结构试卷及答案(word文档良心出品)
注意事项:1、下面关于串的叙述中,哪一个是不正确的?( )A .串是字符的有限序列B .空串是由空格构成的串C .模式匹配是串的一种重要运算D .串既可以采用顺序存储,也可以采用链式存储 2、设无向图的顶点个数为n ,则该图最多有( )条边。
A .n-1B .n(n-1)/2C . n(n+1)/2D .0 3、以下数据结构中,( )是非线性数据结构。
A .树B .字符串C .队列D .栈 4、下面关于线性表的叙述中,错误的是哪一个?( )A .线性表采用顺序存储,必须占用一片连续的存储单元。
B .线性表采用顺序存储,便于进行插入和删除操作。
C .线性表采用链接存储,不必占用一片连续的存储单元。
D .线性表采用链接存储,便于插入和删除操作。
5、假设以数组A[m]存放循环队列的元素,其头尾指针分别为front 和rear ,则当前队列中的元素个数为( )。
A .(rear-front+m)%mB .rear-front+1C .(front-rear+m)%mD .(rear-front)%m6、在单链表指针为p 的结点之后插入指针为s 的结点,正确的操作是( )。
A .p->next=s; s->next=p->next;B .s->next=p->next; p->next=s;C .p->next=s; p->next=s->next;D .p->next=s->next; p->next=s; 7、设栈的输入序列是1,2,3,4,则( )不可能是其出栈序列。
A .1,2,4,3B .2,1,3,4C .1,4,3,2D .4,3,1,2, 8、广义表(a,(b,c),d,e )的表头和表尾分别为( )。
A .a 和(b,c),d,e B .(a )和(b,c),d,eC .a 和 ((b,c),d,e)D .(a) 和((b,c),d,e)9、栈和队都是( )A .顺序存储的线性结构B .链式存储的非线性结构C .限制存取点的线性结构D .限制存取点的非线性结构 10、从逻辑上可以把数据结构分为( )两大类。
数据结构试题库及答案
数据结构试题库及答案一、选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构通常使用()来存储。
A. 链表B. 栈C. 队列D. 数组答案:D2. 以下哪个算法不是排序算法?A. 快速排序B. 归并排序C. 深度优先搜索D. 堆排序答案:C3. 在二叉树的遍历算法中,先访问根节点,然后遍历左子树,最后遍历右子树的遍历方式是()。
A. 先序遍历B. 中序遍历C. 后序遍历D. 层序遍历答案:A4. 哈希表的冲突解决方法不包括以下哪种?A. 链地址法B. 线性探测法C. 二分查找法D. 再散列法答案:C5. 在图的遍历算法中,广度优先搜索(BFS)使用的辅助数据结构是()。
A. 栈B. 队列C. 堆D. 链表答案:B6. 下列关于堆的描述中,错误的是()。
A. 堆是一种特殊的完全二叉树B. 堆中的每个节点的值都大于其子节点的值C. 堆可以用于实现优先队列D. 堆的插入操作的时间复杂度为O(log n)答案:B7. 在一个长度为n的数组中,使用二分查找算法查找一个元素的最坏情况下的时间复杂度是()。
A. O(1)B. O(n)C. O(n^2)D. O(log n)答案:D8. 以下哪个数据结构不是线性结构?A. 链表B. 栈C. 队列D. 二叉树答案:D9. 以下哪个算法是动态查找表?A. 直接索引B. 顺序查找C. 二分查找D. 哈希表答案:D10. 在图的表示方法中,邻接矩阵表示法的缺点是()。
A. 占用空间大B. 占用空间小C. 插入和删除操作复杂D. 遍历操作复杂答案:A二、填空题(每题2分,共20分)1. 在一个长度为n的数组中,使用顺序查找算法查找一个元素的时间复杂度为________。
答案:O(n)2. 一个具有n个节点的完全二叉树的高度为________。
答案:log2(n) + 1(向上取整)3. 一个长度为n的链表,删除一个节点的时间复杂度为________。
答案:O(1)4. 在图的表示方法中,邻接表表示法的缺点是________。
东南大学数据结构试卷-推荐下载
共8页
第3页
五、综合算法题(每空 2.5 分,共 55 分)
1.完善改进的归并排序算法。*this是一个待排序的表,而表L2是一个辅助的工作表,帮
助完成排序的中间步骤,最终完成*this的排序。所谓改进指在把元素序列复制到辅助表
中时,把第2个表的元素顺序逆转,这样两个待归并的表从两端开始处理,向中间归并。
可以省去检查子表是否结束的判断。
template <typename T>void Orderedlist<T>::MergeSort(int left, int rig
improvedMergeSort(L2, left, right);
template <typename T>
(1)
template <typename T>
void Orderedlist<T>::improvedMerge(Orderedlist<T> &L2, int left, int mid, int right){
} }
int s1 = left, s2 = right, t = left, k ; //s1,s2是检测指针,t是存放指针
for (k = left; k <= mid; k++){
(2)
} for (k = mid + 1; k <= right; k++){
(3) } while (t <= right){
if(L2.slist[s1] <= L2.slist[s2]) (4)
else (5)
;
2.完成二叉树前序遍历的非递归算法和层次序遍历算法操作。 //非递归前序遍历。每访问一个结点后,在向左子树遍历下去之前,利用栈记录该结点的 右子女结点的地址,以便在左子树退回时可以直接从栈顶取得右子树的根结点,继续右
计算机专业基础综合数据结构(树和二叉树)历年真题试卷汇编4
计算机专业基础综合数据结构(树和二叉树)历年真题试卷汇编4(总分:74.00,做题时间:90分钟)一、综合题(总题数:35,分数:74.00)1.(1)试找出满足下列条件的二叉树:1)先序序列与后序序列相同2)中序序列与后序序列相同3)先序序列与中序序列相同4)中序序列与层次遍历序列相同(2)已知一棵二叉树的中序序列和后序序列分别为DBEAFIHCG和DEBHIFGCA,画出这棵二叉树。
【东北大学1999六(4分)】【东南大学2000一、4(6分)】(分数:2.00)__________________________________________________________________________________________ 正确答案:(正确答案:(1)先序遍历二叉树的顺序是“根一左子树一右子树”,中序遍历“左子树一根一右子树”,后序遍历顺序是“左子树一右子树一根”,根据以上原则,本题解答如下:1)若先序序列与后序序列相同,则或为空树,或为只有根结点的二叉树。
2)若中序序列与后序序列相同,则或为空树,或为任一结点至多只有左子树的二叉树。
3)若先序序列与中序序列相同,则或为空树,或为任一结点至多只有右子树的二叉树。
4)若中序序列与层次遍历序列相同,则或为空树,或为任一结点至多只有右子树的二叉树。
(2)由中序序列DBEAFIHCG和后序序列DEBHIFGCA)解析:2.分别给出满足下列条件的二叉树。
(1)前序和中序遍历结果相同;(2)前序和中序遍历结果不相同而是相反;(3)中序和后序遍历结果相同;(4)前序和后序遍历结果相同。
【四川大学2004】【烟台大学2007四、2(8分)】(分数:2.00)__________________________________________________________________________________________ 正确答案:(正确答案:空二叉树满足题目要求,若二叉树非空,则(1)前序和中序遍历结果相同的二叉树是任一结点无左子女; (2)前序和中序遍历结果不相同而是相反的二叉树是任一结点无右子女; (3)中序和后序遍历结果相同的二叉树是任一结点无右子女; (4)前序和后序遍历结果相同的二叉树是只有根结点。
数据结构-东南大学
★数据结构是一门研究非数值计算的程序设计问题中的(A )以及它们之间的(B )和运算的学科。
A .操作对象 B .计算方法 C .逻辑存储 D .数据映象 A .结构 B .关系 C .运算 D .算法★ 试举例说明,如果两个数据结构的逻辑结构和存储结构相同,但基本运算(操作)不同,则这两个数据结构就是不同的。
例如二叉树和二叉排序树在逻辑结构上都是二叉树,都采用二叉链表形式存储,但是对于某些运算的定义不同,例如插入操作,二叉树需指明作为哪个结点的左孩子还是右孩子插入,而二叉排序树无需指明,由二叉排序树的形状决定插入位置★算法有哪些特点?为什么说一个具备了所有特点的算法,不一定就是实用的算法?答:特点:输入、输出、确定性、有穷性、有效性;一般地说,只有多项式时间度杂度的算法才是实用的。
★如何评价算法的好坏? 答:正确性(四个层面);可读性;健壮性;时空效率(复杂性)。
★程序段for (i=n-1; i>=1; i++) for (j=1; j<=i; j++) if (A[j]>A[j+1])A[j]与A[j+1]对换;其中n 为正整数,则最后一行的语句频度在最坏情况下是(D ) A. O(n) B. O(nlog2n) C. O(n3) D. O(n2)★分析以递归方式求阶乘的算法的时间复杂度。
long Factorial ( long n ) {if ( n = = 1 ) return 1; // 递归终止 else return n*Factorial ( n-1); // 递归})()1())2(()1(2))1(()1())((n O O n n T O O n T O O n T O =⨯==-+⨯=-+=★分析二分查找函数的时间复杂度。
int BinarySearch(int *a, const int x, const int n) {for(int left = 0, right = n –1; left <= right;){ int middle = (left + right)/2; switch(compare(x, a[middle])){ case ‘>’: left = middle + 1; break; // x > a[middle] ca se ‘<’: right = middle – 1; break; // x < a[middle] case ‘=’: found x; // x == a[middle] } }return –1; // not found }实例特性是数组a 中元素的个数n 。
(NEW)东南大学《935计算机专业基础》历年考研真题汇编
2000年东南大学935计算机专业基础考研 真题(数据结构、操作系统部分)
2001年东南大学935计算机专业基础考研 真题(数据结构、操作系统部分)
2002年东南大学935计算机专业基础考研 真题(数据结构、操作系统部分)
2003年东南大学935计算机专业基础考研 真题(数据结构、操作系统部分)
2014年全国硕士研究生入学统一考试计算机科学与技术学科联考计算 机学科专业基础综合真题及详解
2015年全国硕士研究生入学统一考试计算机科学与技术学科联考计算 机学科专业基础综合真题及详解
2016年全国硕士研究生入学统一考试计算机科学与技术学科联考计算 机学科专业基础综合真题及参考答案
2017年全国硕士研究生入学统一考试计算机科学与技术学科联考计算 机学科专业基础综合真题及参考答案
目 录
第一部分 东南大学935计算机专业基础历年考研真题
1993年东南大学935计算ห้องสมุดไป่ตู้专业基础考研真题(数据结构部分)
1994年东南大学935计算机专业基础考研真题(数据结构、操作系统 部分)
1995年东南大学935计算机专业基础考研真题(数据结构、操作系统 部分)
1996年东南大学935计算机专业基础考研真题(数据结构、操作系统 部分)
2010年全国硕士研究生入学统一考试计算机科学与技术学科联考计算 机学科专业基础综合真题及详解
2011年全国硕士研究生入学统一考试计算机科学与技术学科联考计算 机学科专业基础综合真题及详解
2012年全国硕士研究生入学统一考试计算机科学与技术学科联考计算 机学科专业基础综合真题及详解
2013年全国硕士研究生入学统一考试计算机科学与技术学科联考计算 机学科专业基础综合真题及详解
数据结构试题(含答案)
数据结构试题(含答案)数据结构试题(含答案)一、选择题1. 数据结构是计算机科学中的一个重要概念。
下列选项中,不属于数据结构的是:A. 数组B. 栈C. 数据库D. 链表答案:C2. 在数据结构中,栈(Stack)是一种后进先出(LIFO)的数据结构。
下列操作中,不属于栈的是:A. 入栈B. 出栈C. 遍历D. 清空栈答案:C3. 链表(Linked List)是一种常见的数据结构,它由一系列节点组成,每个节点包含两个部分:数据和指向下一个节点的指针。
下列选项中,不属于链表的是:A. 单链表B. 双链表C. 循环链表D. 二叉树答案:D4. 哈希表(Hash Table)是一种根据关键码直接访问存储位置的数据结构。
下列选项中,不属于哈希表的优点是:A. 快速查找B. 插入和删除操作效率高C. 数据无序D. 冲突较少答案:C二、填空题1. 树(Tree)是一种非线性数据结构,它由一组以边连接的节点组成。
树中每个节点最多可以有________个子节点。
答案:无限制/任意个2. 图(Graph)是由节点和连接节点的边组成的数据结构。
图中节点的度是指与该节点相连接的边的________。
答案:数量3. 广度优先搜索(BFS)和深度优先搜索(DFS)是常用的图遍历算法。
在BFS中,使用________结构来保存待访问的节点。
答案:队列4. 在二叉搜索树(Binary Search Tree)中,左子树中的每个节点的值都小于根节点的值,右子树中的每个节点的值都大于根节点的值。
这种特性称为_______________。
答案:二叉搜索树性质三、简答题1. 请简要说明线性数据结构和非线性数据结构的区别。
答案:线性数据结构是指数据元素之间存在一对一的线性关系,例如数组、栈、队列等;而非线性数据结构是指数据元素之间存在一对多或多对多的关系,例如树、图等。
线性数据结构的存储方式是连续的,非线性数据结构的存储方式是离散的。
东南大学数据结构2000真题
东南大学2000年考研专业课试卷数据结构试题一:简要回答下列问题(共40分)1.假设一棵二叉树的层序序列是ABCDEFGHIJ和中序序列是DBGEHJACIF,请画出该树.(6分)2.简单比较文件的多重表和倒排表组织方式各自的特点.(6分)3.画出对算术表达式A-B*C/D+E^F求值时操作数栈和运算符栈的变化过程.(6分)4.找出所有满足下列条件的二叉树6分)a)它们在先序遍历和中序遍历时,得到的结点访问序列相同;b)它们在后序遍历和中序遍历时,得到的结点访问序列相同;c)它们在先序遍历和后序遍历时,得到的结点访问序列相同.5.对一个由n个关键字不同的记录构成的序列,能否用比2n-3少的次数选出该序列中关键字取最大值和关键字取最小值的记录?请说明如何实现?在最坏情况下至少进行多少次比较?(8分)6.已知某文件经过置换选择排序后,得到长度分别为47,9,31,18,4,12,23,7的8个初始归并段.试为3路平衡归并设计读写外存次数最少的归并方案,并求出读写外存的次数.(8分)二:已知L是无表头结点的单链表,其中P结点既不是首元结点,也不是尾元结点,(10分)a)在P结点后插入S结点的语句序列是______b)在P结点前插入S结点的语句序列是______c)在表首插入S结点的语句序列是______d)在表尾插入S结点的语句序列是______(1) P^.next:=S;(2) P^.next:=P^.next^.next;(3) P^.next:=S^.next;(4) S^.next:=P^.next;(5) S^.next:=L;(6) S^.next:=NIL;(7) Q:=P;(8) WHILE P^.next<>Q DO P:=P^.next;(9) WHILE P^.next<>NIL DO P:=P^.next;(10) P:=Q;(11) P:=L;(12) L:=S;(13) L:=P;三:设计一个符号表的表示方法,编写算法使得在该表中进行查询,插入和删除任何一个标识符X的操作在O(1)的时间内.假设1<=x<=m,n为要插入的个数,所需空间为m+n. (10分)四:试利用Dijkstra算法求下图中从顶点a到其它各顶点的最短路径,写出执行算法过程。
东南大学十套数据结构试题与答案.docx
数据结构试卷(一)三、算(每6分,共24 分)1. 在如下数 A 中存了一个性表,表指 A [0].next,写出性表。
A01234567data605078903440next35720412.画出下的接矩和接表。
3.已知一个的点集 V 和集 E 分: V={1,2,3,4,5,6,7};E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25};用克斯卡算法得到最小生成,写出在最小生成中依次得到的各条。
4. 画出向小根堆中加入数据4, 2, 5, 8, 3,每加入一个数据后堆的化。
四、算法(每7 分,共 14 分)1. LinkList mynote(LinkList L){//L是不点的表的指if(L&&L->next){q=L; L=L- >next ; p=L;S1:while(p->next) p=p->next;S2:p->next=q;q->next=NULL;}return L;}回答下列:(1)明句 S1 的功能;(2)明句 S2 的功能;(3)表表示的性表( a1,a 2, ⋯ ,a n), 写出算法行后的返回所表示的性表。
2. void ABC(BTNode * BT){if BT {ABC (BT->left);ABC (BT->right);cout<<BT->data<<' ';}}算法的功能是:五、算法填空(共8 分)二叉搜索的找——算法:bool Find(BTreeNode* BST,ElemType& item){if (BST==NULL)return false; //查找失败else {if (item==BST->data){item=BST->data;//查找成功return ___________;}else if(item<BST->data)return Find(______________,item);else return Find(_______________,item);}//if}六、编写算法(共8 分)统计出单链表HL 中结点的值等于给定值X 的结点数。
2022年东南大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
2022年东南大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题1、将线性表的数据元素进行扩充,允许带结构的线性表是()。
A.串B.树C.广义表D.栈2、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储, a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。
A.13B.33C.18D.403、线性表的顺序存储结构是一种()。
A.随机存取的存储结构B.顺序存取的存储结构C.索引存取的存储结构D.Hash存取的存储结构4、已知串S='aaab',其next数组值为()。
A.0123B.1123C.1231D.12115、有六个元素6,5,4,3,2,1顺序入栈,下列不是合法的出栈序列的是()。
A.543612B.453126C.346521D.2341566、循环队列放在一维数组A中,end1指向队头元素,end2指向队尾元素的后一个位置。
假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。
初始时为空,下列判断队空和队满的条件中,正确的是()。
A.队空:end1==end2;队满:end1==(end2+1)mod MB.队空:end1==end2;队满:end2==(end1+1)mod (M-1)C.队空:end2==(end1+1)mod M;队满:end1==(end2+1) mod MD.队空:end1==(end2+1)mod M;队满:end2==(end1+1) mod (M-1)7、若元素a,b,c,d,e,f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈操作,则不可能得到的出栈序列是()。
8、在下述结论中,正确的有()。
①只有一个结点的二叉树的度为0。
②二叉树的度为2。
③二叉树的左右子树可任意交换。
④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。
A.①②③B.⑦③④C.②④D.①④9、一棵哈夫曼树共有215个结点,对其进行哈夫曼编码,共能得到()个不同的码字。
数据结构试题集(包含答案 完整版)
第一章概论一、选择题1、研究数据结构就是研究( D )。
A. 数据的逻辑结构B. 数据的存储结构C. 数据的逻辑结构和存储结构D. 数据的逻辑结构、存储结构及其基本操作2、算法分析的两个主要方面是( A )。
A. 空间复杂度和时间复杂度B. 正确性和简单性C. 可读性和文档性D. 数据复杂性和程序复杂性3、具有线性结构的数据结构是( D )。
A. 图B. 树C. 广义表D. 栈4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。
A. 可执行性、可移植性和可扩充性B. 可执行性、有穷性和确定性C. 确定性、有穷性和稳定性D. 易读性、稳定性和确定性5、下面程序段的时间复杂度是( C )。
for(i=0;i<m;i++)for(j=0;j<n;j++)a[i][j]=i*j;A. O(m2)B. O(n2)C. O(m*n)D.O(m+n)6、算法是( D )。
A. 计算机程序B. 解决问题的计算方法C. 排序算法D. 解决问题的有限运算序列7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示( C )。
A. O(n)B. O(nlog2n)C. O(n2)D. O(log2n)8、下面程序段的时间复杂度为( C )。
i=1;while(i<=n)i=i*3;A. O(n)B. O(3n)C. O(log3n)D. O(n3)9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的()和运算等的学科。
A. 结构B. 关系C. 运算D. 算法10、下面程序段的时间复杂度是(A )。
i=s=0;while(s<n){i++;s+=i;}A. O(n)B. O(n2)C. O(log2n)D. O(n3)11、抽象数据类型的三个组成部分分别为( A)。
A. 数据对象、数据关系和基本操作B. 数据元素、逻辑结构和存储结构C. 数据项、数据元素和数据类型D. 数据元素、数据结构和数据类型12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是()。
东南大学研究生入学考试数据结构试题
东南大学研究生入学考试数据结构试题东南大学一九九四年攻读硕士学位研究生入学考试试题试题编号:451试题名称:数据结构一: 回答下列问题(共32分)1.最近最少使用(Least-Recently-Used)页替换是虚拟存储系统中常用的策略,试说明如何利用一页链接表时刻跟踪最近最少使用页?(8分)2.已知无向图G,V(G)={1,2,3,4},E(G)={(1,2),(1,3),(2,3),(2,4),(3,4)},试画出G的邻接多表(Adjacency Multilists),并说明,若已知点i,如何根据邻接多表找到与i相邻的点j?(8分)3.欲求前k个最大元素,用什么分类(sorting)方法好?为什么?什么是稳定分类?分别指出下列算法是否稳定分类算法,或易于改成稳定分类算法?(a) 插入分类 (b) 快速分类 (c) 合并分类 (d) 堆(heap)分类 (e) 基数分类(radix sort) (8分)4.构造最佳二叉检索树的前提条件是什么?在动态情况下,一般A VL树的查询性能不如完全二叉检索树的,为什么人们却采用A VL树呢?(8分)二:下列算法对一n位二进制数加1,假设无溢出,该算法的最坏时间复杂度是什么?并分析它的平均时间复杂性.(15分)type Num=array[1..n] of [0..1];procedure Inc(var A:Num);var j: integer;begin i:=n;while A[i]=1 doA[i]:=0;i:=i-1;end;A[i]:=1;end Inc;三:给定n*m矩阵A[a..b,c..d],并设A[i,j]<=A[i,j+1](a<=i<=b,c<=j<=d-1)和A[i,j]<=A[i+1,j](a<=i<=b-1,c<=j<=d),设计一算法以比O(n*m)小的时间复杂度判定值x是否在A中.(17分)四:设图G有n个点,利用从某个源点到其余各点最短路径算法思想,设计一产生G 的最小生成树的算法.(18分)五:字符序列的子序列由删除该序列任意位置的任意个元素而得.序列x和y的最长公共子序列记为Lcs(x,y),是x和y的公共子序列,且长度最大.例如,adcbcb是x=abdcbcbb和y=adacbcb的最长公共子序列.设x长度为n,y长度为m,设计一算法计算x和y的最长公共子序列的长度,尽可能改进你的算法,使它的时间复杂性为O(n*m).(18分) ________________________________________________________________ _______________试题编号:451试题名称:数据结构1.在磁带文件上进行二分查找行吗?为什么?(6分)2.分析确定下列程序中语句k:=k+1执行次数与n所成的数量级关系(即表示为O(f(n))的形式).(6分)k:=1; i:=k;while i<="" p="">begin k:=k+1; i=i+k; end;3.外排序中为什么采用k-路合并而不采用2-路合并?这种技术用于内排序有意义吗?为什么?(8分)4.索引顺序存取方法(ISAM)中,主文件已按主关键字(primary key)排序,为什么还需要主关键字索引?(6分)5.满二叉检索树(full binary search tree)符合B树定义吗?B树的插入(insetb)和删除(deleteb)算法适用于满二叉检索树吗?为什么?(10分)6.设无向图G有n个点e条边,写一算法建立G的邻接多表(adjacency multilists),要求该算法的时间复杂性为O(n+e),且除邻接多表本身所占空间外只用O(1)辅助空间.(16分)7.写一改进的递归快速排序算法,要求对于n个记录,该算法的递归深度<=1+log2(n),并说明你的算法满足这一要求.(17分)8.定义前序排列(preorder permutation)为1,2,……n的全部二叉树的中序排列(inorder permutation)集合为IP;再定义将1,2,……n从右到左经过一个栈可得到的全部排列集合为SP.例如,当n=3,SP={123,132,213,231,321}.问:IP包含于SP成立否?证明你的结论.(16分)9.设记录R[i]的关键字为R[i].key(1<=i<=k),树结点T[i](1<=i<=k-1)指向败者记录,T�为全胜记录下标.写一算法产生对应上述R[i](1<=i<=k)的败者树(tree of loser),要求除R[1..k]和T[0..k-1]以外,只用O(1)辅助空间.(15分)________________________________________________________________ _试题编号:451试题名称:数据结构一:回答下列问题(共46分)1.线性表(a(1),a(2),……a(n))用顺序映射表示时,a(i)与a(i+1)(1<=i<n)的< bdsfid="113" p=""></n)的<>物理位置相邻吗?链接表示时呢?(5分)2.一棵前序序列为1,2,3,4的二叉树,其中序序列可能是4,1,2,3吗?设一棵二叉树的前序序列为1,2,3,4,5,6,7,8,9,其中序序列为2,3,1,5,4,7,8,6,9,试画出该二叉树.(7分)3.在模式匹配KMP(Knuth,Morris and Pratt)算法中所用失败函数f的定义中,为什么要求p(1)p(2)……p(f(j))为p(1)p(2)……p(j)两头匹配的真子串?且为最大真子串?(7分)4.在union-find问题中,控制union操作的权重(weighting)规则是何含义, 有何效果?控制find操作的倒塌(collapsing)规则是何含义,有何效果?(7分)5.堆排序(heap sort)是稳定排序吗?举例说明.(6分)6.给定输入文件:101,48,19,65,3,74,33,17,21,20,99,53,24,并设记录缓冲区个数k=4,写出基于败者树的外排序顺串生成算法runs输出的顺串.(6分)7.m阶B树中,m大小的确定与什么因素有关?(8分)二:设结点结构为:| data | link |,试用一个全局指针p和某种链接结构实现一个队列,画出示意图,并给出入队和出队deleteq过程,要求它们的时间复杂性都是O(1)(不计new和dispose时间).(10分) 三:设有向图G有n个点(用1,2,……n表示),e条边,写一算法根据G的邻接表生成反向邻接表,要求时间复杂性为O(n+e).(13分) 四:设二叉树结点结构为:| left | data | bf | right |,定义二叉树结点T 的平衡因子bf(T)=h(左)-h(右),写一递归算法确定二叉树tree中所有节点的平衡因子bf,同时返回二叉树tree中非叶结点个数.(15分) 五:设符号表T重的标识符x满足1<=x<=m,且n为对T表的最大插入次数.设计符号表T的表示结构,允许使用O(m+n)空间,并写出T的初始化(init),查找(search),插入(insert)和删除(delete)算法,要求它们的时间复杂性都是O(1).(16分)________________________________________________________________试题编号:451试题名称:数据结构一:简要回答下列问题(共32分)1.在表达式中,有的运算符要求从右到左运算,如A^B^C的计算次序应为(A^(B^C)),这在由中缀生成后缀的算法中是怎样实现的?(8分)2.给出KMP算法中失败函数f的定义,并说明利用f进行串模式匹配的规则,该算法的技术特点是什么?(8分)3.Fibonacci查找算法(fibsrch)中为什么要求m<f(a-1),试用图示说明.(8分)< bdsfid="139" p=""></f(a-1),试用图示说明.(8分)<>4.为什么在倒排文件(inverted files)组织中,实际记录中的关键字域(key fields)可删除以节约空间?而在多表(multilists)结构中这样做为什么要牺牲性能?(8分)二:试写一算法,建立无向图G的邻接多表(adjacency multilists),要求说明算法中主要数据结构和变量的意义.(15分)三:给出中序线索树的结点结构并画出一个具有头结点的中序线索树,使其树结点至少应有6个,写一算法在不使用栈和递归的情况下前序遍历一中序线索树,并分析其时间复杂性.(18分)四:若S是n个元素的集合,则S的幂集P(S)定义为S的所有子集的集合.例如,S=(a,b,c),P(S)={(),(a),(b),(c),(a,b),(a,c),(b,c),(a,b,c)}.给定S, 写一递归算法求P(S).(15分)五:已知在llink-rlink存储法表示的二叉树中,指针t指向该二叉树的根结点,指针p,q分别指向树中的二个结点,试写一算法,求距离这两个结点最近的共同的祖先结点.(20分)________________________________________________________________试题编号:451试题名称:数据结构一:简要回答下列问题(共40分)1.设胜者树(selection tree)由k个记录缓冲区和k-1个非叶结点构成.概念上非叶结点表示其两个子女中关键字较小者,而实际上非叶结点存放的是什么?(5分)2.索引顺序存取方法(ISAM)中,主文件已按主关键字(primary key)排序,为什么还需要主关键字索引?(6分)3.一棵前序序列为1,2,3,4的二叉树,其中序序列可能是4,1,2,3吗?设一棵二叉树的前序序列为1,2,3,4,5,6,7,8,9,其中序序列为2,3,1,5,4,7,8,6,9,试画出该二叉树.(7分)4.构造最佳二叉检索树的前提条件是什么?在动态情况下,一般AVL 树的查询性能不如完全二叉检索树的,为什么人们却采用AVL树呢?(8分)5.将两个栈存入数组V[1..m]中应如何安排最好?这时栈空栈满的条件是什么?(6分)6.已知无向图G,V(G)={1,2,3,4},E(G)={(1,2),(1,3),(2,3),(2,4),(3,4)},试画出G的邻接多表(Adjacency Multilists),并说明,若已知点i,如何根据邻接多表找到与i相邻的点j?(8分)二:写出用堆排序(heap sort)算法对文件F=(12,3,15,30,9,28)进行排序时,初始堆及以后每挑好一个元素重新调整后堆的状态,并指出这里的堆和败者树(tree of loser)的一个主要区别.(8分)三:设数组A存放一n位二进制数,试说明下列算法X的功能.假设无溢出,算法X的最坏时间复杂度是什么?分析它的平均时间复杂性.(8分) type Num=array[1..n] of [0..1];procedure X(var A:Num);var j: integer;begin i:=n;while A[i]=1 dobeginA[i]:=0;i:=i-1;end;A[i]:=1;end;四:下面是一改进了的快速分类算法:1 procedure qsort1(var list:afile;m,n:integer);2 (设list[m].key<list[n+1].key)< bdsfid="180" p=""></list[n+1].key)<>3 var i,j,k:integer;4 begin5 while m<="" p="">6 begin7 i:=m;j:=n+1;k:=list[m].key;8 repeat9 repeat i:=i+1 until list[i].key>=k;10 repeat j:=j-1 until list[j].key<=k;11 if i<="" p="" then="">12 until i>=j;13 interchange(list[m],list[j]);14 if n-j>=j-m15 then begin qsort1(list,m,j-1);m:=j+1;end16 else begin qsort1(list,j+1,n);n:=j-1;end17 end;(of while)18 end;问: (共20分)1.将第9,10行中的>=,<=分别改成>,<行吗?为什么?(5分)2.该排序算法稳定否,举例说明.(5分)3.对输入文件(22,3,30,4,60,11,58,18,40,16),列表表示该文件在每次调用qsort1时的状态及相应m,n的值.(5分)4.若输入文件有n个记录,简要说明支持qsort1递归所需最大栈空间用量(设一层递归用一个单位栈空间).(5分)五:给定AOE网络各事件(标号1..n)的ee,le值和邻接表,写一算法求该AOE的所有活动(用相应边的两端点表示)的关键度(criticality).(10分)六:给出中序线索树的结点结构,并画出一个具有头结点和六个树结点的中序线索树,试写一算法在不使用栈和递归的情况下前序遍历一中序线索树,并分析它的时间复杂性.(18分)________________________________________________________________ _____东南大学一九九九年攻读硕士学位研究生入学考试试题试题编号:451试题名称:数据结构注意事项:(1) 答卷上需写清题号,不必抄题;回答问题字迹工整,卷面清洁.(2) 编程中所用的数据结构及主要变量需加以说明,必要时程序中加以注释.一:简要回答下列问题(共40分)1.利用两个栈s1,s2模拟一个队列时,如何用栈的运算实现队列的插入,删除以及判队空运算.请简述算法思想.(7分)2.二叉树有n个顶点,编号为1,2,3,……n,设:T中任一顶点V的编号等于左子树中最小编号减一;T中任一顶点V的右子树中最小编号等于其左子树中最大编号加一;试描绘该二叉树.(7分)3.设某文件经内排序后得到100个初始归并段(初始顺串),若使用多路归并排序算法,并要求三趟归并完成排序,归并路数最少为多少?(5分)4.若一棵树中有度数为1至m的各种结点数分别为n1,n2,...nm(nm表示度数为m的结点个数),请推导出该树中共有多少个叶结点n0的公式.(8分)5.试举例分析,堆排序法是否稳定.(5分)6.试利用KMP算法和改进算法分别求p1='abcabaa'和p2='aabbaab'的NEXT函数和NEXTVAL函数.(8分)二:阅读下列算法,指出算法A的功能和时间复杂性.(10分)procedure A(h,g: pointer);(h,g分别为单循环链表(single linked circular list)中两个结点指针)procedure B(s,q: pointer);var p: pointer;beginp:=s;while p^.next<>q do p:=p^.next;p^.next:=s;end; (of B)beginB(h,g);B(g,h);end; (of A)三:已知无向图采用邻接表存储方式,试写出删除边(i,j)的算法.(10分) 四:线性表中有n个元素,每个元素是一个字符,存在向量R[1..n]中,试写一个算法,使R中的字符按字母字符,数字字符和其它字符的顺序排列.要求利用原空间,且元素移动次数最少.(15分)五:四阶B树中(如图所示),插入关键字87,试画出插入调整后树的形状.(10分)|30 60 80|/ / \ \|20 25| |35 50| |60 70 75| |82 85 90|六:试编写一算法对二叉树按前序线索化.(15分)________________________________________________________________ _____东南大学二○○○年攻读硕士学位研究生入学考试试题科目编号:451科目名称:数据结构一:简要回答下列问题(共40分)1.假设一棵二叉树的层序序列是ABCDEFGHIJ和中序序列是DBGEHJACIF,请画出该树.(6分)2.简单比较文件的多重表和倒排表组织方式各自的特点.(6分)3.画出对算术表达式A-B*C/D+E^F求值时操作数栈和运算符栈的变化过程.(6分)4.找出所有满足下列条件的二叉树6分)a)它们在先序遍历和中序遍历时,得到的结点访问序列相同;b)它们在后序遍历和中序遍历时,得到的结点访问序列相同;c)它们在先序遍历和后序遍历时,得到的结点访问序列相同.5.对一个由n个关键字不同的记录构成的序列,能否用比2n-3少的次数选出该序列中关键字取最大值和关键字取最小值的记录?请说明如何实现?在最坏情况下至少进行多少次比较?(8分)6.已知某文件经过置换选择排序后,得到长度分别为47,9,31,18,4,12,23,7的8个初始归并段.试为3路平衡归并设计读写外存次数最少的归并方案,并求出读写外存的次数.(8分)二:已知L是无表头结点的单链表,其中P结点既不是首元结点,也不是尾元结点,(10分)a)在P结点后插入S结点的语句序列是______b)在P结点前插入S结点的语句序列是______c)在表首插入S结点的语句序列是______d)在表尾插入S结点的语句序列是______(1) P^.next:=S;(2) P^.next:=P^.next^.next;(3) P^.next:=S^.next;(4) S^.next:=P^.next;(5) S^.next:=L;(6) S^.next:=NIL;(7) Q:=P;(8) WHILE P^.next<>Q DO P:=P^.next;(9) WHILE P^.next<>NIL DO P:=P^.next;(10) P:=Q;(11) P:=L;(12) L:=S;(13) L:=P;三:设计一个符号表的表示方法,编写算法使得在该表中进行查询,插入和删除任何一个标识符X的操作在O(1)的时间内.假设1<=x<=m,n为要插入的个数,所需空间为m+n.(10分)四:试利用Dijkstra算法求下图中从顶点a到其它各顶点的最短路径,写出执行算法过程中各步的状态.(10分)____________/ 4 \↓ 6 \b------→e___9 \15↑↑ \ // 2 /8 ↓/a------→c g (和严蔚敏习题集上题目相同)\ \4 ↑↑12↓ 5 ↓ 10/ /d←------f__/ /\___________/3五:以顺序存储结构表示串,设计算法,求串S中出现的第一个最长重复子串及其位置并分析算法的时间复杂度.(15分)六:写出按后序序列遍历中序线索树的算法.(15分)________________________________________________________________ _____二○○一年的题目(缺两道小题):一:1.设胜者树(selection tree)由k个记录缓冲区和k-1个非叶结点构成.概念上非叶结点表示其两个子女中关键字较小者,而实际上非叶结点存放的是什么? 3.给出KMP算法中失败函数f的定义,并说明利用f进行串模式匹配的规则,该算法的技术特点是什么?5.是一道关于Huffman树中叶子结点和非叶结点数量关系的计算题,具体题目记不得了.6.求有向图中任意一对顶点之间最短路径的弗洛伊德算法(allcosts-Floyd)中,要求有向图满足什么前提条件?二:在二叉树的结点结构中增加一个域:leftsize,t^.leftsize表示t结点的左子树中结点的总个数,试编写算法alloc(k),在二叉树中查找中序序号为k的结点,要求时间复杂度为O(log2(n)).三:编写算法输出从n个自然数中取k个(k<=n)的所有组合.例如,当n=5,k=3时,你的算法应该输出:543,542,541,532,531,521,432,431,421,321.四:设有向图G用邻接表的方式存储,u,v是G中的任意两个结点,写一算法,求出G中从u到v的所有简单路径.五:下面是一改进了的快速排序算法,试补充其中的空白语句,并分析该算法所需的最大递归空间是多少?procedure qsort1(var list:afile;m,n:integer);(设list[m].key<list[n+1].key)< bdsfid="324" p=""></list[n+1].key)<>var i,j,k:integer;beginwhile m<="" p="">begini:=m;j:=n+1;k:=list[m].key;repeatrepeat i:=i+1 until list[i].key>=k;repeat j:=j-1 until list[j].key<=k;if i<="" p="" then="">until i>=j;interchange(list[m],list[j]);if n-j>=j-mthen begin qsort1(list,m,___);______;endelse begin qsort1(list,___,n);______;endend;(of while)end;六:给定n*m矩阵A[a..b,c..d],并设A[i,j]<=A[i,j+1](a<=i<=b,c<=j<=d-1)和A[i,j]<=A[i+1,j](a<=i<=b-1,c<=j<=d),设计一算法以O(n+m)的时间复杂度判定值x是否在A中.。
东南大学(有10试题)
东南大学建筑系规划设计1995——1996城市规划设计1999城市规划原理1995——1998,2002中外建筑史和城建史2003中、外建筑史1991——1999,2001外国建筑史1991,1995——2000,2002中国建筑史1995——2001建筑构造1996,2002建筑技术(构造、结构)1998——1999,2002建筑设计1995——2000建筑设计基础2004建筑设计原理1995——1996建筑物理1999,2002素描1995——1998素描色彩1999素描与色彩画2002色彩画1995——1998西方美术史1999中、西美术史1997——1998中西美术史1995——1996,1998中西美术史及其理论1999创作与设计1999无线电工程系专业基础综合(信号与系统、数字电路)2004——2006专业基础综合(含信号与系统、计算机结构与系统、线性电子线路)2003 通信原理1994,1999——2003(1999有答案)信号与系统1997——2002数字电路与微机基础1998——2002模拟电子技术2000模拟电子线路1999——2002电磁场理论2001,2003——2004微机原理与应用1996——2000,2002(2002有答案)应用数学系高等代数1997——2005数学分析1995——2005概率论2003常微分方程2004物理系量子力学2001——2005普通物理2001——2005光学1997——1998,2000——2004热力学统计物理2001电磁场理论2001,2003——2004人文学院政治学原理2008法学理论2004法学综合(法理学)(含刑法学与刑事诉讼法学、宪法学、行政法学与行政诉讼法学)2004法学综合(民商法学)(含宪法学、法理学、行政法学与行政诉讼法学)2004 法学综合(宪法学与行政法学)(含刑法学与刑事诉讼法学、法理学、民商法学与民事诉讼法学)2004民商法学2004宪法和行政法学2004外语系二外日语1999——2004二外法语2000——2004(2003有答案)(注:2004年试卷共10页,缺第9页和第10页)二外德语2000——2002,2004二外俄语2000,2002基础英语1999——2002语言学1999——2002翻译与写作1999——2002基础英语与写作2003——2004(2003——2004有答案)语言学与翻译2003——2004英美文学与翻译2004(2004有答案)二外英语2004日语文学与翻译2004交通学院材料力学2003——2005材料力学(结)1995——2000材料力学(岩)2005结构力学1993——2006土力学及土质学1993——1997,1999——2005道路交通工程系统分析1994——2004(1994——1998,2003——2004有答案)电路分析基础1996——2004电路分析与自控原理2003交通工程学基础1992——2001生物信号处理1999——2003局部解剖学1996生理学1995——1997流行病学2005卫生综合2004——2005内科学1995——1998建筑研究所中外建筑史和城建史2003中、外建筑史1991——1999,2001外国建筑史1991,1995——2000,2002中国建筑史1995——2001建筑构造1996,2002建筑技术(构造、结构)1998——1999,2002建筑设计1995——2000建筑设计基础2004建筑设计原理1995——1996建筑物理1999,2002学习科学研究中心(无此试卷)远程教育学院计算机软件基础(含数据结构、操作系统、软件工程、编译原理、离散数学)2003 计算机专业基础2002,2004——2005计算机结构与逻辑设计2001年本科生期末考试试题离散数学考研试题集(含97——00年)10元编译原理1993——2001编译原理与操作系统2002操作系统1994——2001数据结构1992——2002机械工程系机械原理1993——2005机械设计2002——2004电路分析基础1996——2004电路分析与自控原理2003制冷原理2003——2004制冷原理与设备2000——2002材料力学2003——2005材料力学(结)1995——2000材料力学(岩)2005结构力学1993——2006材料力学2003——2005材料力学(结)1995——2000材料力学(岩)2005土力学及土质学1993——1997,1999——2005工程结构设计原理2005工程经济2003——2005工程流体力学1998——2005工程热力学2000——2004工程施工与管理2002工程力学2003——2005工程力学2002(样题)钢结构1997——1999环境微生物学2005水污染控制工程1997——2002流行病学2005普通化学1997——1998,2000——2005有机化学2004——2005卫生综合2004——2005管理原理1998——2005,2010(2010为回忆版)(注:2004年试卷共2页,缺第2页)自动控制系自动控制理论1997——2002自动控制原理2004高等代数1997——2005生物科学与医学工程系生物信号处理1999——2003现代生物学2003经济管理学院西方经济学1999——2003,2005,2010(2002——2003有答案)(注:2005、2010年试卷为回忆版)金融学基础2002——2005,2005答案管理原理1998——2005,2010(2010为回忆版)(注:2004年试卷共2页,缺第2页)管理学2000——2002,2005,2007(2000——2002有答案)现代管理学2003——2004,2010(2003有答案)(2010为回忆版)市场营销学1999,2000——2001高等代数1997——2005自动控制理论1997——2002自动控制原理2004运筹学2001体育系(无此试卷)仪器科学与工程系电路分析基础1996——2004电路分析与自控原理2003自动控制理论1997——2002自动控制原理2004电磁场理论2001,2003——2004微机系统与接口技术2001——2002微机原理与应用1996——2000,2002(2002有答案)公共卫生学院西方经济学1999——2003,2005,2010(2002——2003有答案)(注:2005、2010年试卷为回忆版)卫生综合2004——2005有机化学2004——2005分析化学1992——2005(1992——2005有答案)物理化学2004——2005物理化学(化)1998——2005物理化学(金材)2000,2002生物信号处理1999——2003局部解剖学1996生理学1996流行病学2005高等教育研究所(无此试卷)软件学院(无此试卷)集成电路学院模拟电子技术2000模拟电子线路1999——2002微机系统与接口技术2001——2002微机原理与应用1996——2000,2002(2002有答案)电磁场理论2001,2003——2004动力工程系结构力学1993——2006土力学及土质学1993——1997,1999——2005工程经济2003——2005工程流体力学1998——2005工程热力学2000——2004工程施工与管理2002热工自动调节原理2001——2004制冷原理2003——2004制冷原理与设备2000——2002电路分析基础1996——2004电路分析与自控原理2003传热学2000——2004普通化学1997——1998,2000——2005电子工程系物理化学2004——2005物理化学(化)1998——2005物理化学(金材)2000,2002半导体物理1996——2005,2010(2010为回忆版)模拟电子技术2000模拟电子线路1999——2002电子线路基础2001——2004电磁场理论2001,2003——2004高等代数1997——2005微机系统与接口技术2001——2002微机原理与应用1996——2000,2002(2002有答案)计算机科学与工程系计算机软件基础(含数据结构、操作系统、软件工程、编译原理、离散数学)2003 计算机专业基础2002,2004——2005计算机结构与逻辑设计2001年本科生期末考试试题离散数学考研试题集(含97——00年)10元编译原理1993——2001编译原理与操作系统2002操作系统1994——2001数据结构1992——2002材料科学与工程系物理化学2004——2005物理化学(化)1998——2005物理化学(金材)2000,2002材料力学2003——2005材料力学(结)1995——2000材料力学(岩)2005钢结构1997——1999金属学2003——2004金属学及热处理1999——2002,2005卫生综合2004——2005电气工程系电工基础2000——2006模拟电子技术2000模拟电子线路1999——2002微机原理与应用1996——2000,2002(2002有答案)电磁场理论2001,2003——2004化学化工系物理化学2004——2005物理化学(化)1998——2005物理化学(金材)2000,2002艺术学系素描1995——1998素描色彩1999素描与色彩画2002色彩画1995——1998西方美术史1999中、西美术史1997——1998中西美术史1995——1996,1998中西美术史及其理论1999创作与设计1999临床医学院生物信号处理1999——2003局部解剖学1996生理学1995——1997流行病学2005卫生综合2004——2005内科学1995——1998情报科学技术研究所(无此试卷)职业技术教育学院(无此试卷)英语(单考)1999——2000。
东南大学十套数据结构试题及标准答案
数据结构试卷(一)三、计算题(每题6 分,共24分)1.在如下数组A中链接存储了一个线性表,表头指针为A [0].next,试写出该线性表。
A 0 1 2 3 4 5 6 7data 60 50 78 90 34 40next 3 5 7 2 0 4 12.请画出下图的邻接矩阵和邻接表。
3.已知一个图的顶点集V和边集E分别为:V={1,2,3,4,5,6,7};E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25};用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。
4.画出向小根堆中加入数据4, 2, 5, 8, 3时,每加入一个数据后堆的变化。
四、阅读算法(每题7分,共14分)1.LinkList mynote(LinkList L){//L是不带头结点的单链表的头指针if(L&&L->next){q=L;L=L->next;p=L;S1:while(p->next) p=p->next;S2:p->next=q;q->next=NULL;}return L;}请回答下列问题:(1)说明语句S1的功能;(2)说明语句组S2的功能;(3)设链表表示的线性表为(a1,a2, …,a n),写出算法执行后的返回值所表示的线性表。
2.void ABC(BTNode * BT){if BT {ABC (BT->left);ABC (BT->right);cout<<BT->data<<' ';}}该算法的功能是:五、算法填空(共8分)二叉搜索树的查找——递归算法:bool Find(BTreeNode* BST,ElemType& item){if (BST==NULL)return false; //查找失败else {if (item==BST->data){item=BST->data;//查找成功return ___________;}else if(item<BST->data)return Find(______________,item);else return Find(_______________,item);}//if}六、编写算法(共8分)统计出单链表HL中结点的值等于给定值X的结点数。
东南大学935计算机专业基础93-08.13-17年真题
2 现有一颗含有25个结点的4叉树T,若T中所有分支(即度不为0 的)结点的度均为4,则T的叶子节点数是( )
A.4片16KB×8位SRAM芯片 B.4片16KB×8位DRAM芯片 C.4片32KB×4位SRAM芯片 D.8片64KB×1位DRAM芯片 【答案】A
11 下列寻址方式中,只能用于指令寻址的是( ) A.立即寻址 B.寄存器寻址 C.相对寻址 D.基址寻址 【答案】C
12 下列有关微指令的叙述中,错误的是( ) A.垂直型微指令全部是功能性指令 B.垂直型微指令指令长度比较短
C.水平型微指令可完成多个微操作 D.水平型微指令显示表示顺序控制信息 【答案】A
13 下列有关总线定时的叙述中,错误的是( ) A.异步全互锁定时方式的通信速度最慢 B.异步不互锁定时方式的通信可靠性最差 C.异步定时方式的握手信息可不通过联络信号产生 D.同步定时方式的时钟信号可由设备自行提供 【答案】D
A.15 B.17 C.19 D.21 【答案】C
3 下列序列中,不可能是任意二叉搜索树后序遍历序列的个数是
( ) ① 5,3,4,10,12,8 ② 5,4,3,10,12,18 ③ 3,4,5,12,10,8 ④ 10,12,5,4,3,8 A.0 B.1 C.2 D.3 【答案】C
4 带权无向图G如下图所示,若分别用Prim算法(从顶点0开始) 和Kruskal算法求G的最小生成树,则最后选中的边的权值分别是 ( )
第一部分 东南大学935计算机专 业基础历年考研真题
东南大学数据结构考研真题1999
东南大学99考研题试题科目:数据结构一.简要回答下列问题(共40分)1.利用两个栈s1,s2模拟一个时,如何用栈的运算实现队列的插入删除及判队空算法。
请简述算法思想。
(7分)2.二叉树有n个顶点,编号为1,2,3,、、、、、n设:*T中任一定点V的编号等于左子树中最小编号减1;*T中任一顶点V的右子树中的最小编号等于其左子树中的最大编号加1;试描绘该二叉树。
(7分)3.设某文件经内排序后得到100个初始归并段,若使用多路归并排序算法,并要求三趟归并完成排序,归并路数最少为多少?(5分)4.若一棵树中有度数为1至m的各种结点数分别为n1,n2、、、、nm(nm表示度数n为的结点个数,试推导出该树中共有多少个叶结点n0的公式。
(8分)5.试举例分析堆排序法是否稳定(5分)6.试利用KMP算法和改进算法分别求p1=‘abaabaa’和p2=‘aabbaab’的NEXT函数和NEXTV AL函数。
(8分)二.阅读下列算法,指出算法的功能和时间复杂性(10分)procedure A(h,g:pointer);(h,g分别为单循还列表中两个结点指针)procedure B(s,q:pointer)var p:pointer;beginp:=s;while p^.next<>q do p:=p^.next;p^.next:=s;end;beginB(h,g); B(g,h);End;三.已知无向图采用邻接表存储方式,试写出删除边( i,j )的算法。
(10分)四.线性表中有个n元素,每个元素是一个字符,存在向量R[1。
n]中,试一写算法,使其中的字符按字母字符,数字字符和其字符的顺序排列,要求利用原空间。
且元素移动的次数最少。
(15分)五.四阶B树中(如图所述),插入关键字87,试画出插入调整后树的形状。
东南大学数据结构考研真题1993
东南大学93考研题注意事项:(1) 答卷上需写清题号,不必抄题(2) 描述可用你熟悉的一种类高级语言,如类Pascal,所用主要数据结构及变量的意义须加以注释。
必要时算法中应加注释。
一、回答下列问题: (共 35分)l与链式结构相比,线性表的顺序存贮的一个主要优点和一个主要缺点分别是什么 ?(4分)2在表达式中,有的运算符要求从右到左计算,如A**B**C的计算次序应为(A**(B**C)),这在由中缀生成后缀的算法中是怎样实现的?(以**为例说明) (6分)3.给出KMP算法中失败函数f的定义,并说明利用f进行串模式匹配的规则,该算法的技术特点是什么?(9分)4二叉树的中序与后序序列能唯一地定义一棵二叉树吗?这里所指序列中的符号代素树结点中的标识符吗?二叉村的前序与后序序列能唯一地定义一棵二叉树吗?为什么?(8分) 5在什么情况下m阶B树(m>>2)比A VL树有效?分析其原因·(8分)二。
将n个队列顺序映射到数组v[l···m]中,每一队列在v中表示为一,循环队列。
试画出其示意图并写出对应这种表示的addq和deleteq过程。
(20分)三、给出中序线索树的结点结构并画出一个具有头结点的中序线索树,使其树结点至少应有6个,写一算法在不使用栈和递归的情况下前序遍历一中序线索树,并分析其时间复杂度,(20分)四、证明:具有n个点和多于n-1条边的无向连通图G一定不是树(10分)五、若S是n个元素的集合,则S的幂集P(S)定义为S所有子集的集合。
例如,S=(a,b,c),P(S)={() ,(a),(b),(c),(a,b),(a,c),(b,c),(a,b,c)}给定S,写一递归算法求P(S)。
(15分)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
共 8 页 第1页东 南 大 学 考 试 卷(A 卷) 课程名称 数据结构 考试学期 08-09-3 得分 适用专业 吴健雄学院电类 考试形式 半开卷 考试时间长度 120分钟 一、选择题(每题1分,共5分) 1.下面有关链栈的描述,对常规情况正确的是 ( ) A .在链头插入,链尾删除。
B .在链尾插入,链头删除。
C .在链尾插入,链尾删除。
D .在链头插入,链头删除。
2.对线性表进行对半搜索时,要求线性表必须( ) A .以数组方式存储 B .以数组方式存储并按关键码排序 C .以链表方式存储 D .以链表方式存储并按关键码排序 3.对包含n 个元素的散列表进行搜索,平均搜索长度为( ) A .O(log 2n) B .O(n) C .不直接依赖于n D .三者均不是 4.在同一个有向图中,所有结点的入度和与出度和之比为( ) A .1 B .2 C .1/2 D .都不对 5.在具有n 个顶点的无向图中,要连通全部顶点至少需要( )条边。
A .n B .n+1 C .n-1 D .n/2 二、判断题(每题1分,共5分) 1.链式存储的线性表所有存储单元的地址可连续可不连续。
( ) 2.存储有向图的邻接矩阵是对称的,所以可以仅存矩阵上三角部分。
( ) 3.在采用闭散列法解决冲突时,不要立刻做物理删除,否则搜索时会出错。
( )4.二叉树中序遍历结果序列的最后一个结点必是前序遍历的最后一个结点。
( )5.堆排序的时间复杂度是O(n log 2 n),但需要额外存储空间。
( )三、填空题(每空1分,第1空、第2空为2分,共11分)1.中缀表达式“(a+b)*d+e/(f+a*d)+c)”所对应的后缀表达式为(1)2.后缀表达式“ab&&ef>!||”所对应的中缀表达式为(2)自 觉 遵 守 考 场 纪 律如 考 试 作 弊 此 答卷 无 效3.高度为h的二叉树最多可以有多少结点(3)4.若对一棵完全二叉树从0开始编号,并按此编号把它顺序存储到一维数组a中,则a[i]元素的左孩子结点为(4) ,右孩子结点为(5) ,双亲结点为(6) 。
5.对用邻接矩阵表示的图进行任何一种遍历时,其时间复杂度为(7) 。
对用邻接表表示的图进行任何一种遍历时,其时间复杂度为(8) 。
6.折半插入排序的时间复杂度为(9) 。
四、简答简述题(每题8分,共24分)1.设有一组关键码输入序列{55,31,12,37,46,73,63,02,07},从空树开始构造平衡二叉搜索树,画出每加入一个新结点时的二叉树形态,需标出平衡因子。
包括发生不平衡时,旋转的各步的二叉树形态,并标注旋转类型。
2.已知一棵二叉树的前序遍历的结果为ABECDFGHIJ,中序遍历的结果是EBCDAFHIGJ,试画出这棵二叉树。
请用图表示逐步形成二叉树的过程(也可以用文字)。
共8页第2页3.请用Kruskal算法,逐步画出下面有权无向图的最小生成树。
必须每次添加一条边。
共8页第3页五、综合算法题(每空2.5分,共55分)1.完善改进的归并排序算法。
*this是一个待排序的表,而表L2是一个辅助的工作表,帮助完成排序的中间步骤,最终完成*this的排序。
所谓改进指在把元素序列复制到辅助表中时,把第2个表的元素顺序逆转,这样两个待归并的表从两端开始处理,向中间归并。
可以省去检查子表是否结束的判断。
template <typename T>void Orderedlist<T>::MergeSort(int left, int right){Orderedlist<T> L2;improvedMergeSort(L2, left, right); //对序列进行归并排序}template <typename T>void Orderedlist<T>::improvedMergeSort(Orderedlist<T> &L2, int left, int right){ int mid = (left + right)/2; //从中间划分为两个子序列improvedMergeSort(L2, left, mid); //对左侧子序列进行归并排序improvedMergeSort(L2, mid + 1, right); //对右侧子序列进行归并排序(1) ; //二路归并}template <typename T>void Orderedlist<T>::improvedMerge(Orderedlist<T> &L2, int left, int mid, int right){ int s1 = left, s2 = right, t = left, k ; //s1,s2是检测指针,t是存放指针for (k = left; k <= mid; k++){ //正向复制(2) ;}for (k = mid + 1; k <= right; k++){ //反向复制(3) ;}while (t <= right){ //归并过程if(L2.slist[s1] <= L2.slist[s2]) (4) ;else (5) ;}}2.完成二叉树前序遍历的非递归算法和层次序遍历算法操作。
//非递归前序遍历。
每访问一个结点后,在向左子树遍历下去之前,利用栈记录该结点的右子女结点的地址,以便在左子树退回时可以直接从栈顶取得右子树的根结点,继续右子树的前序遍历。
共8页第4页template <typename T>void BinaryTree<T>::PreOrder1(void (*visit) (BinTreeNode<T> *t) ) { LinkedStack<BinTreeNode<T>*> S;BinTreeNode<T> *p = root;S.Push (NULL);while (p != NULL) {visit(p); //访问结点if (p->rightChild != NULL)(6) ; //预留右指针在栈中if (p->leftChild != NULL)(7) ; //进左子树else (8) ; //左子树为空,由堆栈弹出}}//层次序遍历。
在访问二叉树某一层结点时,把下一层结点指针预先记忆在队列中,利用队列安排逐层访问的次序。
因此每当访问一个结点时,将它的子女依次加到队尾。
然后访问已在队头的结点。
template <typename T>void BinaryTree<T>::levelOrder (void (*visit) (BinTreeNode<T> *t)) { if (root == NULL) return;LinkedQueue<BinTreeNode<T> * > Q;BinTreeNode<T> *p = root;visit (p);(9) ;while ( (10) ) {Q.DeQueue (p);if (p->leftChild != NULL) {visit (p->leftChild);(11) ;}if (p->rightChild != NULL) {visit (p->rightChild);(12) ;}}}3.完成利用最大堆实现的优先级队列类定义。
注意heap[0]不用,从heap[1]开始共8页第5页template<typename T>class Maxheap{Element<T>* heap;int n;int MaxSize;public:Maxheap(int sz=Defaultsize); //创建空堆,最多可以容纳sz个元素void Insert(Element<T>& item);Element<T>* Delete(Element<T>& x);void show() ;};template<typename T>Maxheap<T>::Maxheap(int sz){MaxSize=sz;n=0;heap= new Element<T>[MaxSize+1]; //注意heap[0]不用,从heap[1]开始}template<typename T>void Maxheap<T>::Insert(Element<T>& x){int i;if(n==MaxSize){cerr<<"heap is full.\n";return;}n++;for(i=n;i>1;){ //i==1表示已达到根节点if( (13) ) break; //新元素不大于结点i的双亲,不处理(14) ;//此时heap[i]未占用,将双亲结点元素移入(15) ; //i继续向上}heap[i]=x; //位置定了数值再放进去}template<typename T>Element<T>* Maxheap<T>::Delete(Element<T>& x){ int i,j;if(!n){cerr<<"heap is empty.\n";return NULL;}x=heap[1];Element<T> k=heap[n];n--;共8页第6页for(i=1,j=2;j<=n;){ //j是i的子女if(j<n) if( (16) ) j++; //j指向较大子女if(heap[j]<=k) break; //候补的结点大,不再移动(17) ; //还需移动,将较大子女直接移入(18) ; //移动(19) ;}heap[i]=k;return &x;}4.完成的深度优先遍历图算法。
//深度优先遍历图,输出所有的连通分量template<typename T, typename E> void Graph<T,E>::DFS(){int i, n = NumberOfVertices(); //取图中顶点个数bool *visited = new bool[n]; //创建辅助数组for (i = 0; i < n; i++){ //辅助数组visited初始化visited[i] = false;}for(i=0;i<n;i++){ //从每个顶点开始,各做一次遍历。