北京航空航天大学北航2015年春《算法与数据结构》在线作业三满分答案
北航数据结构试题及答案
北航数据结构试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构通常使用什么数据结构来实现?A. 链表B. 栈C. 数组D. 树答案:C2. 下列关于二叉树的描述中,错误的是:A. 二叉树的第i层最多有2^(i-1)个节点B. 任意非空二叉树的叶子节点数等于度为2的节点数加1C. 任意非空二叉树的叶子节点数等于度为2的节点数减1D. 任意非空二叉树的叶子节点数等于度为2的节点数答案:C3. 在图的遍历算法中,深度优先搜索(DFS)使用的数据结构是:A. 队列B. 栈C. 链表D. 数组答案:B4. 哈希表的冲突解决方法不包括以下哪种?A. 开放定址法B. 链地址法C. 再散列法D. 排序法答案:D5. 快速排序算法的时间复杂度最坏情况下为:A. O(nlogn)B. O(n^2)C. O(n)D. O(1)答案:B6. 以下排序算法中,时间复杂度为O(nlogn)的是:A. 冒泡排序B. 快速排序C. 选择排序D. 插入排序答案:B7. 以下关于堆的描述中,正确的是:A. 堆是一种特殊的二叉树B. 堆是一种完全二叉树C. 堆是一种平衡二叉树D. 堆是一种链表答案:A8. 在一个长度为n的有序数组中查找一个元素,使用二分查找算法的时间复杂度是:A. O(n)B. O(nlogn)C. O(logn)D. O(1)答案:C9. 以下算法中,不属于动态数据结构的是:A. 链表B. 栈C. 数组D. 哈希表答案:C10. 以下关于图的描述中,错误的是:A. 图是由顶点和边组成的B. 图的顶点可以有0个或多个C. 图的边可以有向或无向D. 图的顶点数一定大于边数答案:D二、多项选择题(每题3分,共15分)1. 下列哪些是线性表的存储结构?A. 顺序存储B. 链式存储C. 索引存储D. 散列存储答案:A, B2. 在图的表示方法中,以下哪些是正确的?A. 邻接矩阵B. 邻接表C. 边表D. 顶点表答案:A, B, C3. 下列哪些排序算法是稳定的?A. 冒泡排序B. 快速排序C. 插入排序D. 选择排序答案:A, C4. 在数据结构中,以下哪些是递归算法的特点?A. 问题可以分解为更小的子问题B. 每个子问题都是原问题的实例C. 存在递归终止条件D. 递归算法的时间复杂度一定比迭代算法高答案:A, B, C5. 在使用链表实现栈时,以下哪些操作是合法的?A. pushB. popC. peekD. clear答案:A, B, C三、简答题(每题5分,共30分)1. 请简述什么是递归,并给出一个递归算法的例子。
北邮算法与数据结构习题参考答案
北邮算法与数据结构习题参考答案作业参考答案一、(带头结点)多项式乘法 C = A×B:void PolyAdd ( list &C, list R) // R 为单个结点{p=C;while ((!p->next) && (p->next->exp>R->exp)) p=p->next; if ((p->next) || (p->next->exp<R->exp)){ R->next=p->next; p->next=R; } else{ p->next->inf += R->inf; delete R;if ( ! p->next->inf ){ R=p->next; p->next=R->next; delete R; } }}void PolyMul ( list A, list B, list &C ){C=new struct node; C->next=NULL; q=B->next; While ( q ){p=A->next;while ( p ){r = new struct node; r->exp = p->exp + q->exp;r->inf = p-> inf * q->inf; PolyAdd(C, r);p=p->next;}q=q->next;}}二、梵塔的移动次数:已知移动次数迭代公式为:M ( n ) = 2M ( n-1 ) + 1初值为:M ( 0 ) = 0则:M ( n ) = 2 ( 2M ( n-2 ) + 1 ) + 1= 4M ( n-2 ) + 3= 8M ( n-3 ) + 7= 2i M ( n-i ) + 2i– 1若n=i ,则M ( n-n ) = 0,故:M ( n ) = 2n M ( n-n ) + 2n– 1= 2n– 1所以,梵塔的移动次数为2n– 1次。
国家开放大学电大《数据结构》网络课形考任务3作业及答案
国家开放大学电大《数据结构》网络课形考任务3作业及答案档任务3一、单项选择题(每小题2分,共38分)题目1 假定一棵二叉树中,双分支结点数为15,单分支结点数为30,则叶子结点数为()。
选择一项: A、47 B、16 C、17 D、15 题目2 二叉树第k层上最多有()个结点。
选择一项: A、2k-l B、2k-l C、2k-l D、2k 题目3 将含有150个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点的编号为1,则编号为69的结点的双亲结点的编号为()。
选择一项: A、36 B、35 C、34 D、33 题目4 如果将给定的一组数据作为叶子数值,所构造出的二叉树的带权路径长度最小,则该树称为()。
选择一项: A、二叉树 B、哈夫曼树 C、完全二叉树 D、平衡二叉树在一棵度具有5层的满二又树中结点总数为( )o 选择一项: A、16 B、3231 D、33 题目6 一棵完全二叉树共有6层,且第6层上有6个结点,该树共有()个结点。
选择一项: A、31 B、37 C、38 D、72 题目7 利用3、6、8、12这四个值作为叶子结点的权,生成一棵哈夫曼树,该树中所有叶子结点中的最长带权路径长度为(在一棵树中,()没有前驱结点。
)、选择一项: A、18 B、16 C、30 D、12 题目8 选择一项: A、树根结点 B、叶结点 C、空结点 D、分支结点题目9 设一棵采用链式存储的二叉树,除叶结点外每个结点度数都为2,该树结点中共有20个指针域为空,则该树有()个叶结点。
选择一项: B、10 C、21 D、22 题目10 在一个图G中,所有顶点的度数之和等于所有边数之和的()倍。
选择一项: A、2 B、1 C、4 D、1/2 题目11 邻接表是图的一种()<、选择一项: A、链式存储结构 B、顺序存储结构C、散列存储结构 D、索引存储结构题目12 图的深度优先遍历算法类似于二叉树的()遍历。
算法与数据结构习题及参考答案
算法与数据结构习题及参考答案一、选择题1. 在算法分析中,时间复杂度表示的是:A. 算法执行的时间B. 算法的运行速度C. 算法执行所需的操作次数D. 算法的内存消耗答案:C2. 哪种数据结构可以在常数时间内完成插入和删除操作?A. 数组B. 栈C. 队列D. 链表答案:B3. 单链表的逆置可以使用哪种算法实现?A. 冒泡排序B. 归并排序C. 快速排序D. 双指针法答案:D4. 常用的查找算法中,哪种算法的时间复杂度始终为O(log n)?A. 顺序查找B. 二分查找C. 广度优先搜索D. 深度优先搜索答案:B5. 哪种排序算法的时间复杂度最坏情况下仍为O(n log n)?A. 冒泡排序B. 插入排序C. 快速排序D. 堆排序答案:C二、填空题1. 下面哪个数据结构先进先出?A. 栈B. 队列C. 堆D. 链表答案:B2. 在快速排序的基本步骤中,需要选取一个元素作为________。
答案:枢纽元素3. 广度优先搜索使用的数据结构是________。
答案:队列4. 二分查找是基于_________的。
答案:有序数组5. 哈希表的查找时间复杂度为_________。
答案:O(1)三、解答题1. 请简要说明冒泡排序算法的原理及时间复杂度。
答:冒泡排序是一种简单直观的排序算法。
它的基本思想是通过相邻元素之间的比较和交换来将最大(或最小)的元素逐渐“冒泡”到数列的一端。
冒泡排序的过程如下:1)比较相邻的元素,如果前面的元素大于后面的元素,则交换它们的位置;2)对每一对相邻元素重复进行比较和交换,直到最后一对元素;3)针对剩下的元素重复上述步骤,直到整个数列有序。
冒泡排序的时间复杂度为O(n^2),其中n为待排序数列的长度。
在最坏情况下,冒泡排序需要进行n-1次比较和交换操作,因此时间复杂度为O(n^2)。
在最好情况下,如果待排序数列已经有序,冒泡排序只需进行n-1次比较,没有交换操作,时间复杂度为O(n)。
数据结构期中试卷A参考答案
北京航空航天大学北海学院课程考试试卷答案要点及评分细则课程名称:《数据结构》考试班级:软件与信息工程学院卷别:_A 命题教师签名: 年 月 日1、 单项选择题(本题共15小题,每小题2分,共30分)123456789101112131415C AD B C B D D C A D C A C B2、 判断正误题(本题共10小题,每小题1分,共10分)1.X,2.X,3.√,4.√,5.X,6.X,7.X,8.√,9.X, 10.√3、 填空题(本题共6小题10个空,每空2分,共20分)(1) O(n)(2) O(n)(3) O(1)(4) 求模式串在主串中首次出现的位置的运算,即求主串中左起第一个与模 式串相等的子串的首字符在主串中的位置。
(5) (Q.rear-Q.front+Max)% Max(6) 4(7) n2log n,n3, 2n(8) n→∞时n3/(n2log n)→∞, 2n/(n3)→∞(9) 为空(10) 出队四、简答题:(本题共4小题,1,2小题各4分,3,4小题各6分,共20分)1.1) 确定性指描述无二义性,相同条件下执行的路线和结果都是唯一的。
2) 输入可以有0至多个从算法外部接受的输入。
2. 该缓冲区应该采用队列结构。
其主要特点是先进先出。
3. 顺序表:O(n),单循环链表:O(n),顺序栈:O(1),循环队列:O(1),链栈:O(1),链队列:O(1)。
4. 优点:①随机访问,简捷;②只存数据,局部空间利用率高;缺点:①逻辑关系靠地址表达,插入删除造成大量元素移动;②要求连续存储空间,固定长度,不便扩充;③须预先按最大可能分配,但闲置多,按整体看空间利用率低。
五、设计题(本题共3小题,第1小题2分,第2小题8分,第3小题10分,共20 分)1. typedef struct node{datatype data;struct node *next;}node;2.(1). s->next = head->next; head->next = s;(2). s->next = head; head = s;3. 答案1:采用尾指针表示、带头结点的单循环链表。
算法与数据结构试题及答案
数据结构试卷〔一〕一、单选题〔每题2 分,共20分〕1.栈和队列的共同特点是< >.A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用方式存储的队列,在进行插入运算时< >.A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?< >A. 队列B.栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644<10>,A[2][2]存放位置在676<10>,每个元素占一个空间,问A[3][3]<10>存放在什么位置?脚注<10>表示用10进制表示.A.688 B.678 C.692 D.6965.树最适合用来表示< >.A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为< >.A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为< >A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O〔1〕B. O〔n〕C. O〔1og2n〕D. O〔n2〕9.对于线性表〔7,34,55,25,64,46,20,10〕进行散列存储时,若选用H〔K〕=K %9作为散列函数,则散列地址为1的元素有〔〕个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有< >条边才能确保是一个连通图.A.5B.6C.7D.8二、填空题〔每空1分,共26分〕1.通常从四个方面评价算法的质量:_________、_________、_________和_________.2.一个算法的时间复杂度为<n3+n2log2n+14n>/n2,其数量级表示为________.3.假定一棵树的广义表表示为A〔C,D〔E,F,G〕,H〔I,J〕〕,则树中所含的结点数为__________个,树的深度为___________,树的度为_________.4.后缀算式9 2 3 +- 10 2 / -的值为__________.中缀算式〔3+4X〕-2Y/3对应的后缀算式为_______________________________.5.若用链表存储一棵二叉树时,每个结点除数据域外,还有指向左孩子和右孩子的两个指针.在这种存储结构中,n个结点的二叉树共有________个指针域,其中有________个指针域是存放了地址,有________________个指针是空指针.6.对于一个具有n个顶点和e条边的有向图和无向图,在其对应的邻接表中,所含边结点分别有_______个和________个.7.AOV网是一种___________________的图.8.在一个具有n个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有向完全图中,包含有________条边.9.假定一个线性表为<12,23,74,55,63,40>,若按Key % 4条件进行划分,使得同一余数的元素成为一个子表,则得到的四个子表分别为____________________________、___________________、_______________________和__________________________. 10.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度___________.11.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为________,整个堆排序过程的时间复杂度为________.12.在快速排序、堆排序、归并排序中,_________排序是稳定的.三、计算题〔每题6 分,共24分〕1.在如下数组A中存储了一个线性表,表头指针为A [0].next,试写出该线性表.datanext2.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的结点数.int CountX<LNode* HL,ElemType x>数据结构试卷〔二〕一、选择题<24分>1.下面关于线性表的叙述错误的是〔〕.<A> 线性表采用顺序存储必须占用一片连续的存储空间<B> 线性表采用链式存储不必占用一片连续的存储空间<C> 线性表采用链式存储便于插入和删除操作的实现<D> 线性表采用顺序存储便于插入和删除操作的实现2.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有〔〕个空指针域.<A> 2m-1 <B>2m <C>2m+1 <D>4m3.设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为〔〕.<A> R-F <B> F-R <C> <R-F+M>%M <D> <F-R+M>%M4.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为〔〕.<A> BADC<B>BCDA<C> CDAB <D> CBDA5.设某完全无向图中有n个顶点,则该完全无向图中有〔〕条边.<A> n<n-1>/2 <B> n<n-1> <C> n2<D> n2-16.设某棵二叉树中有2000个结点,则该二叉树的最小高度为〔〕.<A> 9 <B> 10 <C> 11 <D> 127.设某有向图中有n个顶点,则该有向图对应的邻接表中有〔〕个表头结点.<A> n-1 <B> n <C> n+1 <D> 2n-18.设一组初始记录关键字序列<5,2,6,3,8>,以第一个记录关键字5为基准进行一趟快速排序的结果为〔〕.<A> 2,3,5,8,6 <B> 3,2,5,8,6<C> 3,2,5,6,8 <D> 2,3,6,5,8二、填空题<24分>1.为了能有效地应用HASH查找技术,必须解决的两个问题是____________________和__________________________.2.下面程序段的功能实现数据x进栈,要求在下划线处填上正确的语句.typedef struct {int s[100]; int top;} sqstack;void push<sqstack &stack,int x>{if <stack.top==m-1> printf<"overflow〞>;else {____________________;_________________;}}3.中序遍历二叉排序树所得到的序列是___________序列〔填有序或无序〕.4.快速排序的最坏时间复杂度为___________,平均时间复杂度为__________.5.设某棵二叉树中度数为0的结点数为N0,度数为1的结点数为N1,则该二叉树中度数为2的结点数为_________;若采用二叉链表作为该二叉树的存储结构,则该二叉树中共有_______个空指针域.6.设某无向图中顶点数和边数分别为n和e,所有顶点的度数之和为d,则e=_______.7.设一组初始记录关键字序列为<55,63,44,38,75,80,31,56>,则利用筛选法建立的初始堆为___________________________.8.已知一有向图的邻接表存储结构如下:从顶点1出发,DFS遍历的输出序列是,BFS遍历的输出序列是三、应用题<36分>1.设一组初始记录关键字序列为<45,80,48,40,22,78>,则分别给出第4趟简单选择排序和第4趟直接插入排序后的结果.2.设指针变量p指向双向链表中结点A,指针变量q指向被插入结点B,要求给出在结点A 的后面插入结点B的操作序列〔设双向链表中结点的两个指针域分别为llink和rlink〕. 3.设一组有序的记录关键字序列为<13,18,24,35,47,50,62,83,90>,查找方法用二分查找,要求计算出查找关键字62时的比较次数并计算出查找成功时的平均查找长度.4.设一棵树T中边的集合为{<A,B>,<A,C>,<A,D>,<B,E>,<C,F>,<C,G>},要求用孩子兄弟表示法〔二叉链表〕表示出该树的存储结构并将该树转化成对应的二叉树.5.设有无向图G,要求给出用普里姆算法构造最小生成树所走过的边的集合.6.设有一组初始记录关键字为<45,80,48,40,22,78>,要求构造一棵二叉排序树并给出构造过程.四、算法设计题<16分>1.设有一组初始记录关键字序列〔K1,K2,…,K n〕,要求设计一个算法能够在O<n>的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于K i,右半部分的每个关键字均大于等于K i.2.设有两个集合A和集合B,要求设计生成集合C=A∩B的算法,其中集合A、B和C用链式存储结构表示.数据结构试卷〔三〕一、选择题<每题1分,共20分>1.设某数据结构的二元组形式表示为A=<D,R>,D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02 ,06>,<03,07>,<03,08>,<03,09>},则数据结构A是〔〕.<A> 线性结构<B> 树型结构<C> 物理结构<D> 图型结构2.下面程序的时间复杂为〔〕for〔i=1,s=0;i<=n;i++〕{t=1;for<j=1;j<=i;j++> t=t*j;s=s+t;}<A> O<n> <B> O<n2><C> O<n3><D> O<n4>3.设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为〔〕.<A> q=p->next;p->data=q->data;p->next=q->next;free<q>;<B> q=p->next;q->data=p->data;p->next=q->next;free<q>;<C> q=p->next;p->next=q->next;free<q>;<D> q=p->next;p->data=q->data;free<q>;4.设有n个待排序的记录关键字,则在堆排序中需要〔〕个辅助记录单元.<A> 1 <B> n <C> nlog2n <D> n25.设一组初始关键字记录关键字为<20,15,14,18,21,36,40,10>,则以20为基准记录的一趟快速排序结束后的结果为< >.<A> 10,15,14,18,20,36,40,21<B> 10,15,14,18,20,40,36,21<C> 10,15,14,20,18,40,36,2l<D> 15,10,14,18,20,36,40,216.设二叉排序树中有n个结点,则在二叉排序树的平均平均查找长度为〔〕.<A> O<1> <B> O<log2n> <C> <D> O<n2>7.设无向图G中有n个顶点e条边,则其对应的邻接表中的表头结点和表结点的个数分别为〔〕.<A> n,e <B> e,n<C> 2n,e<D>n,2e8. 设某强连通图中有n个顶点,则该强连通图中至少有〔〕条边.<A> n<n-1><B> n+1<C> n<D> n<n+1>9.设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列〔〕方法可以达到此目的.<A>快速排序<B>堆排序<C>归并排序<D>插入排序10.下列四种排序中〔〕的空间复杂度最大.<A>插入排序<B>冒泡排序<C>堆排序<D>归并排序二、填空殖<每空1分共20分>1.数据的物理结构主要包括_____________和______________两种情况.2.设一棵完全二叉树中有500个结点,则该二叉树的深度为__________;若用二叉链表作为该完全二叉树的存储结构,则共有___________个空指针域.3.设输入序列为1、2、3,则经过栈的作用后可以得到___________种不同的输出序列.4.设有向图G用邻接矩阵A[n][n]作为存储结构,则该邻接矩阵中第i行上所有元素之和等于顶点i的________,第i列上所有元素之和等于顶点i的________.5.设哈夫曼树中共有n个结点,则该哈夫曼树中有________个度数为1的结点.6.设有向图G中有n个顶点e条有向边,所有的顶点入度数之和为d,则e和d的关系为_________.7.__________遍历二叉排序树中的结点可以得到一个递增的关键字序列〔填先序、中序或后序〕.8.设查找表中有100个元素,如果用二分法查找方法查找数据元素X,则最多需要比较________次就可以断定数据元素X是否在查找表中.9.不论是顺序存储结构的栈还是链式存储结构的栈,其入栈和出栈操作的时间复杂度均为____________.10.设有n个结点的完全二叉树,如果按照从自上到下、从左到右从1开始顺序编号,则第i个结点的双亲结点编号为____________,右孩子结点的编号为___________.11.设一组初始记录关键字为<72,73,71,23,94,16,5>,则以记录关键字72为基准的一趟快速排序结果为___________________________.12.设有向图G中有向边的集合E={<1,2>,<2,3>,<1,4>,<4,2>,<4,3>},则该图的一种拓扑序列为____________________.13.下列算法实现在顺序散列表中查找值为x的关键字,请在下划线处填上正确的语句.struct record{int key; int others;};int hashsqsearch<struct record hashtable[ ],int k>{int i,j; j=i=k % p;while <hashtable[j].key!=k&&hashtable[j].flag!=0>{j=<____> %m; if <i==j> return<-1>;}if <_______________________ > return<j>; else return<-1>;}14.下列算法实现在二叉排序树上查找关键值k,请在下划线处填上正确的语句.typedef struct node{int key; struct node *lchild; struct node *rchild;}bitree;bitree *bstsearch<bitree *t, int k>{if <t==0 > return<0>;else while <t!=0>if <t->key==k>_____________;else if <t->key>k> t=t->lchild; else_____________;}三、计算题<每题10分,共30分>1.已知二叉树的前序遍历序列是AEFBGCDHIKJ,中序遍历序列是EFAGBCHKIJD,画出此二叉树,并画出它的后序线索二叉树.2.已知待散列的线性表为〔36,15,40,63,22〕,散列用的一维地址空间为[0..6],假定选用的散列函数是H〔K〕= K mod 7,若发生冲突采用线性探查法处理,试:〔1〕计算出每一个元素的散列地址并在下图中填写出散列表:` 0〔23.已知序列〔10,18,4,3,6,12,1,9,18,8〕请用快速排序写出每一趟排序的结果.四、算法设计题<每题15分,共30分>1.设计在单链表中删除值相同的多余结点的算法.2.设计一个求结点x在二叉树中的双亲结点算法.数据结构试卷〔四〕一、选择题<每题1分共 20分>1.设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为〔〕.<A> O<n> <B> O<nlog2n> <C> O<1> <D> O<n2>2.设一棵二叉树的深度为k,则该二叉树中最多有〔〕个结点.<A> 2k-1 <B> 2k<C> 2k-1<D> 2k-13.设某无向图中有n个顶点e条边,则该无向图中所有顶点的入度之和为〔〕.<A> n <B> e <C> 2n <D> 2e4.在二叉排序树中插入一个结点的时间复杂度为〔〕.<A> O<1> <B> O<n> <C> O<log2n> <D> O<n2>5.设某有向图的邻接表中有n个表头结点和m个表结点,则该图中有〔〕条有向边.<A> n <B> n-1 <C> m <D> m-16.设一组初始记录关键字序列为<345,253,674,924,627>,则用基数排序需要进行〔〕趟的分配和回收才能使得初始关键字序列变成有序序列.<A> 3 <B> 4<C> 5<D> 87.设用链表作为栈的存储结构则退栈操作〔〕.<A> 必须判别栈是否为满<B> 必须判别栈是否为空<C> 判别栈元素的类型<D> 对栈不作任何判别8.下列四种排序中〔〕的空间复杂度最大.<A> 快速排序<B> 冒泡排序<C> 希尔排序<D> 堆9.设某二叉树中度数为0的结点数为N0,度数为1的结点数为N l,度数为2的结点数为N2,则下列等式成立的是〔〕.<A> N0=N1+1<B> N0=N l+N2<C> N0=N2+1<D> N0=2N1+l10.设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过〔〕.<A> log2n+1<B> log2n-1<C> log2n <D> log2<n+1>二、填空题<每空1分共 20分>1.设有n个无序的记录关键字,则直接插入排序的时间复杂度为________,快速排序的平均时间复杂度为_________.2.设指针变量p指向双向循环链表中的结点X,则删除结点X需要执行的语句序列为_________________________________________________________〔设结点中的两个指针域分别为llink和rlink〕.3.根据初始关键字序列<19,22,01,38,10>建立的二叉排序树的高度为____________. 4.深度为k的完全二叉树中最少有____________个结点.5.设初始记录关键字序列为<K1,K2,…,K n>,则用筛选法思想建堆必须从第______个元素开始进行筛选.6.设哈夫曼树中共有99个结点,则该树中有_________个叶子结点;若采用二叉链表作为存储结构,则该树中有_____个空指针域.7.设有一个顺序循环队列中有M个存储单元,则该循环队列中最多能够存储________个队列元素;当前实际存储________________个队列元素〔设头指针F指向当前队头元素的前一个位置,尾指针指向当前队尾元素的位置〕.8.设顺序线性表中有n个数据元素,则第i个位置上插入一个数据元素需要移动表中_______个数据元素;删除第i个位置上的数据元素需要移动表中_______个元素. 9.设一组初始记录关键字序列为<20,18,22,16,30,19>,则以20为中轴的一趟快速排序结果为______________________________.10.设一组初始记录关键字序列为<20,18,22,16,30,19>,则根据这些初始关键字序列建成的初始堆为________________________.11.设某无向图G中有n个顶点,用邻接矩阵A作为该图的存储结构,则顶点i和顶点j互为邻接点的条件是______________________.12.设无向图对应的邻接矩阵为A,则A中第i上非0元素的个数_________第i列上非0元素的个数〔填等于,大于或小于〕.13.设前序遍历某二叉树的序列为ABCD,中序遍历该二叉树的序列为BADC,则后序遍历该二叉树的序列为_____________.14.设散列函数H<k>=k mod p,解决冲突的方法为链地址法.要求在下列算法划线处填上正确的语句完成在散列表hashtalbe中查找关键字值等于k的结点,成功时返回指向关键字的指针,不成功时返回标志0.typedef struct node {int key; struct node *next;} lklist;void createlkhash<lklist *hashtable[ ]>{int i,k; lklist *s;for<i=0;i<m;i++>_____________________;for<i=0;i<n;i++>{s=<lklist *>malloc<sizeof<lklist>>; s->key=a[i];k=a[i] % p; s->next=hashtable[k];_______________________;}}三、计算题<每题10分,共30分>1、画出广义表LS=<< > , <e> , <a , <b , c , d >>>的头尾链表存储结构.2、下图所示的森林:<1>求树〔a〕的先根序列和后根序列;<2> 求森林先序序列和中序序列;〔3〕将此森林转换为相应的二叉树;3、设散列表的地址X围是[ 0..9 ],散列函数为H〔key〕= 〔key 2 +2〕MOD 9,并采用链表处理冲突,请画出元素7、4、5、3、6、2、8、9依次插入散列表的存储结构.四、算法设计题<每题10分,共30分>1.设单链表中有仅三类字符的数据元素<大写字母、数字和其它字符>,要求利用原单链表中结点空间设计出三个单链表的算法,使每个单链表只包含同类字符.2.设计在链式存储结构上交换二叉树中所有结点左右子树的算法.3.在链式存储结构上建立一棵二叉排序树.数据结构试卷〔五〕一、选择题<20分>1.数据的最小单位是〔〕.<A> 数据项<B> 数据类型<C> 数据元素<D> 数据变量2.设一组初始记录关键字序列为<50,40,95,20,15,70,60,45>,则以增量d=4的一趟希尔排序结束后前4条记录关键字为〔〕.<A> 40,50,20,95 <B> 15,40,60,20<C> 15,20,40,45 <D> 45,40,15,203.设一组初始记录关键字序列为<25,50,15,35,80,85,20,40,36,70>,其中含有5个长度为2的有序子表,则用归并排序的方法对该记录关键字序列进行一趟归并后的结果为〔〕.<A> 15,25,35,50,20,40,80,85,36,70<B> 15,25,35,50,80,20,85,40,70,36<C> 15,25,35,50,80,85,20,36,40,70<D> 15,25,35,50,80,20,36,40,70,854.函数substr<"DATASTRUCTURE〞,5,9>的返回值为〔〕.<A> "STRUCTURE〞<B> "DATA〞<C> "ASTRUCTUR〞<D> "DATASTRUCTURE〞5.设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为〔〕.<A> O<log2n> <B> O<1> <C> O<n2> <D> O<n>6.设一棵m叉树中度数为0的结点数为N0,度数为1的结点数为N l,……,度数为m的结点数为Nm,则N0=〔〕.<A> N l+N2+……+Nm <B> l+N2+2N3+3N4+……+<m-1>Nm<C> N2+2N3+3N4+……+<m-1>Nm <D> 2N l+3N2+……+<m+1>Nm7.设有序表中有1000个元素,则用二分查找查找元素X最多需要比较〔〕次.<A> 25 <B> 10<C> 7 <D> 18.设连通图G中的边集E={<a,b>,<a,e>,<a,c>,<b,e>,<e,d>,<d,f>,<f,c>},则从顶点a出发可以得到一种深度优先遍历的顶点序列为〔〕.<A> abedfc <B> acfebd <C> aebdfc <D> aedfcb9.设输入序列是1、2、3、……、n,经过栈的作用后输出序列的第一个元素是n,则输出序列中第i个输出元素是〔〕.<A> n-i <B> n-1-i <C> n+1-i <D> 不能确定10 设一组初始记录关键字序列为<45,80,55,40,42,85>,则以第一个记录关键字45为基准而得到一趟快速排序的结果是〔〕.<A> 40,42,45,55,80,83 <B> 42,40,45,80,85,88<C> 42,40,45,55,80,85 <D> 42,40,45,85,55,80二、填空题<共20分>1.设有一个顺序共享栈S[0:n-1],其中第一个栈项指针top1的初值为-1,第二个栈顶指针top2的初值为n,则判断共享栈满的条件是____________________.2.在图的邻接表中用顺序存储结构存储表头结点的优点是____________________.3.设有一个n阶的下三角矩阵A,如果按照行的顺序将下三角矩阵中的元素〔包括对角线上元素〕存放在n<n+1>个连续的存储单元中,则A[i][j]与A[0][0]之间有_______个数据元素.4.栈的插入和删除只能在栈的栈顶进行,后进栈的元素必定先出栈,所以又把栈称为__________表;队列的插入和删除运算分别在队列的两端进行,先进队列的元素必定先出队列,所以又把队列称为_________表.5.设一棵完全二叉树的顺序存储结构中存储数据元素为ABCDEF,则该二叉树的前序遍历序列为___________,中序遍历序列为___________,后序遍历序列为___________.6.设一棵完全二叉树有128个结点,则该完全二叉树的深度为________,有__________个叶子结点.7.设有向图G的存储结构用邻接矩阵A来表示,则A中第i行中所有非零元素个数之和等于顶点i的________,第i列中所有非零元素个数之和等于顶点i的__________.8.设一组初始记录关键字序列<k1,k2,……,k n>是堆,则对i=1,2,…,n/2而言满足的条件为_______________________________.9.下面程序段的功能是实现冒泡排序算法,请在下划线处填上正确的语句.void bubble<int r[n]>{for<i=1;i<=n-1; i++>{for<exchange=0,j=0; j<_____________;j++>if<r[j]>r[j+1]>{temp=r[j+1];______________;r[j]=temp;exchange=1;} if <exchange==0> return;}}10.下面程序段的功能是实现二分查找算法,请在下划线处填上正确的语句.struct record{int key; int others;};int bisearch<struct record r[ ], int k>{int low=0,mid,high=n-1;while<low<=high>{________________________________;if<r[mid].key==k> return<mid+1>;else if<____________> high=mid-1;else low=mid+1;}return<0>;}三、应用题<32分>1.设某棵二叉树的中序遍历序列为DBEAC,前序遍历序列为ABDEC,要求给出该二叉树的的后序遍历序列.2.设无向图G〔如右图所示〕,给出该图的最小生成树上边的集合并计算最小生成树各边上的权值之和.3.设一组初始记录关键字序列为<15,17,18,22,35,51,60>,要求计算出成功查找时的平均查找长度.4.设散列表的长度为8,散列函数H<k>=k mod 7,初始记录关键字序列为<25,31,8,27,13,68>,要求分别计算出用线性探测法和链地址法作为解决冲突方法的平均查找长度.四、算法设计题<28分>1.设计判断两个二叉树是否相同的算法.2.设计两个有序单链表的合并排序算法.数据结构试卷〔六〕一、选择题<30分>1.设一组权值集合W={2,3,4,5,6},则由该权值集合构造的哈夫曼树中带权路径长度之和为〔〕.<A> 20 <B> 30 <C> 40 <D> 452.执行一趟快速排序能够得到的序列是〔〕.<A> [41,12,34,45,27]55[72,63]<B> [45,34,12,41]55[72,63,27]<C> [63,12,34,45,27]55[41,72]<D> [12,27,45,41]55 [34,63,72]3.设一条单链表的头指针变量为head且该链表没有头结点,则其判空条件是〔〕.<A> head==0 <B> head->next==0<C> head->next==head <D> head!=04.时间复杂度不受数据初始状态影响而恒为O<nlog2n>的是〔〕.<A> 堆排序<B> 冒泡排序<C> 希尔排序<D> 快速排序5.设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是〔〕.<A> 空或只有一个结点<B> 高度等于其结点数<C> 任一结点无左孩子<D> 任一结点无右孩子6.一趟排序结束后不一定能够选出一个元素放在其最终位置上的是〔〕.<A> 堆排序<B> 冒泡排序<C> 快速排序<D> 希尔排序7.设某棵三叉树中有40个结点,则该三叉树的最小高度为〔〕.<A> 3 <B> 4 <C> 5 <D> 68.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为〔〕.<A> O<n> <B> O<n2> <C> O<n1/2> <D> O<1og2n>9.二路归并排序的时间复杂度为〔〕.<A> O<n> <B> O<n2> <C> O<nlog2n> <D> O<1og2n>10. 深度为k的完全二叉树中最少有〔〕个结点.<A> 2k-1-1 <B> 2k-1<C> 2k-1+1 <D> 2k-111.设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为〔〕.<A>front->next=s;front=s;<B>s->next=rear;rear=s;<C>rear->next=s;rear=s;<D>s->next=front;front=s;12.设某无向图中有n个顶点e条边,则建立该图邻接表的时间复杂度为〔〕.<A> O<n+e> <B> O<n2> <C> O<ne> <D> O<n3>13.设某哈夫曼树中有199个结点,则该哈夫曼树中有〔〕个叶子结点.<A> 99 <B> 100 <C> 101 <D> 10214.设二叉排序树上有n个结点,则在二叉排序树上查找结点的平均时间复杂度为〔〕.<A> O<n> <B> O<n2> <C> O<nlog2n> <D> O<1og2n>15.设用邻接矩阵A表示有向图G的存储结构,则有向图G中顶点i的入度为〔〕.<A> 第i行非0元素的个数之和<B> 第i列非0元素的个数之和<C> 第i行0元素的个数之和<D> 第i列0元素的个数之和二、判断题<20分>1.调用一次深度优先遍历可以访问到图中的所有顶点.〔〕2.分块查找的平均查找长度不仅与索引表的长度有关,而且与块的长度有关.〔〕3.冒泡排序在初始关键字序列为逆序的情况下执行的交换次数最多.〔〕4.满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树.〔〕5.设一棵二叉树的先序序列和后序序列,则能够唯一确定出该二叉树的形状.〔〕6.层次遍历初始堆可以得到一个有序的序列.〔〕7.设一棵树T可以转化成二叉树BT,则二叉树BT中一定没有右子树.〔〕8.线性表的顺序存储结构比链式存储结构更好.〔〕9.中序遍历二叉排序树可以得到一个有序的序列.〔〕10.快速排序是排序算法中平均性能最好的一种排序.〔〕三、填空题<30分>1.for<i=1,t=1,s=0;i<=n;i++> {t=t*i;s=s+t;}的时间复杂度为_________.2.设指针变量p指向单链表中结点A,指针变量s指向被插入的新结点X,则进行插入操作的语句序列为__________________________〔设结点的指针域为next〕.3.设有向图G的二元组形式表示为G =〔D,R〕,D={1,2,3,4,5},R={r},r={<1,2>,<2,4>,<4,5>,<1,3>,<3,2>,<3,5>},则给出该图的一种拓扑排序序列__________.4.设无向图G中有n个顶点,则该无向图中每个顶点的度数最多是_________.5.设二叉树中度数为0的结点数为50,度数为1的结点数为30,则该二叉树中总共有_______个结点数.6.设F和R分别表示顺序循环队列的头指针和尾指针,则判断该循环队列为空的条件为_____________________.7.设二叉树中结点的两个指针域分别为lchild和rchild,则判断指针变量p所指向的结点为叶子结点的条件是_____________________________________________.8.简单选择排序和直接插入排序算法的平均时间复杂度为___________.9.快速排序算法的空间复杂度平均情况下为__________,最坏的情况下为__________.10.散列表中解决冲突的两种方法是_____________和_____________.四、算法设计题<20分>1.设计在顺序有序表中实现二分查找的算法.。
北航《算法与数据结构》在线作业
北航《算法与数据结构》在线作业一一、单选题(共 25 道试题,共 100 分。
)1. 以下说法错误的是()A. 线性表的元素可以是各种各样的,逻辑上相邻的元素在物理位置上不一定相邻B. 在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上不一定相邻C. 在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻D. 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素满分:4 分2. 带头节点的单链表head 为空的判定条件()。
A. head=NULLB. head->next=NULLC. head->next=headD. head!=head满分:4 分3. 设有10000个元素组成的无序序列,希望尽快挑选出其中前10个最大值元素,在不改变已有算法结构的前提下,以下几种内排序算法中( )最合适。
A. 选择排序法B. 快速排序法C. 堆排序法D. 冒泡排序法。
满分:4 分4. 在以下栈的基本运算中,不是加工型运算的是().A. lnitStack(S)B. Push(S,X)C. Pop(S)D. empty(S)满分:4 分5. 设矩阵A是一对称矩阵(aij=aji,1<=i,j<=8),若每个矩阵元素占3个单元,将其上三角部分(包括对角线)按行序为主序存放在数组B中,B的首地址为1000,则矩阵元素a67的地址为()A. 1031B. 1093C. 1096D. 1032满分:4 分6. 线性表是一个具有n个()的有限序列。
A. 表元素B. 字符C. 数据元素D. 数据项满分:4 分7. 向二叉排序树中插入一个元素时,其时间复杂度大致为( )。
A. O(log2n(其中2是底数))B. O(n)C. O(1)D. O(n*log2n(其中2是底数))满分:4 分8. 设有向图有n个顶点和e条边,采用领接表作为其存储表示,在进行拓扑排序时,总的计算时间为()。
北京航空航天大学2015年春学期《算法与数据结构》在线作业三满分答案
北航《算法与数据结构》在线作业三一、单选题:1.在一棵二叉树中,第4层上的结点数最多为( )。
(满分:4)A. 8B. 15C. 16D. 31正确答案:A2.非空的循环单链表head的尾节点(由p所指向)满足( )。
(满分:4)A. p->next=NULLB. p=NULLC. p->next=headD. p=head正确答案:C3.堆排序在最坏情况下,其时间复杂性为()(满分:4)A. O(nlog2n)B. O(n2)C. O(log2n2)D. O(log2n)正确答案:A4.采用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块时,每块应分( )个结点最佳(满分:4)A. 10B. 25C. 6D. 625正确答案:B5.队列操作的原则是( )。
(满分:4)A. 先进先出B. 后进先出C. 只能进行插入D. 只能进行删除正确答案:A6.设字符串S1='ABCDEFG',S2='PQRST',则运算S=CONCAT(SUB(S1,2,LENGTH(S2)),SUB(S1,LENGTH(S2),2))后结果为( )。
(满分:4)A. BCQR'B. 'BCDEF'C. 'BCDEFG'D. 'BCDEFEF'正确答案:D7.算法的时间复杂度,都要以通过算法中执行频度最高的语句的执行次数来确定这种观点(满分:4)A. 完全正确B. 完全错误C. 视情况而定D. 以上说法均不正确正确答案:B8.在索引顺序表中查找一个元素,可用的且最快的方法是()(满分:4)A. 用顺序查找法确定元素所在块,再用顺序查找法在相应块中查找B. 用顺序查找法确定元素所在块,再用二分查找法在相应块中查找C. 用二分查找法确定元素所在块,再用顺序查找法在相应块中查找D. 用二分查找法确定元素所在块,再用二分查找法在相应块中查找正确答案:C9.对有n个记录的有序表采用二分查找,其平均查找长度的量级为()(满分:4)A. O(log2n)B. O(nlog2n)C. O(n)D. O(n2)正确答案:A10.以下说法正确的是( ) (满分:4)A. 因链栈本身没有容量限制故在用户内存空间的范围内不会出现栈满情况B. 因顺序栈本身没有容量限制故在用户内存空间的范围内不会出现栈满情况C. 对于链栈而言在栈满状态下如果此时再作进栈运算,则会发生“上溢”D. 对于顺序栈而言在栈满状态下如果此时再作迸栈运算,则会发生“下溢”。
北航算法与数据结构复习题
北航算法与数据结构复习题北航《算法与数据结构》复习题单选题(每小题2分,总分10分)1、线性表若采用链表存储结构时,要求内存中可用存储单元的地址(D )A、必需是联系的B、部分地址必须是连续的C、一定是不连续的D、连续不连续都可以2、对顺序表上的插入、删除算法的时间复杂性分析来说,通常以什么为标准操作(B)A、条件判断B、结点移动C、算术表达式D、赋值语句3、在单链表指针为p的结点之后插入指针为s的结点,正确的操作是(B )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;4、对关键码序列28,16,32,12,60,2,5,72快速排序,从小到大一次划分结果为(C )A、(2,5,12,16)26(60,32,72)B、(5,16,2,12)28(60,32,72)C、(2,16,12,5)28(60,32,72)D、(5,16,2,12)28(32,60,72)5、稀疏矩阵的压缩存储方法是只存储(A )A、非零元素B、三元组(i,j, aij)C、aijD、i,j1、从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为(A)排序法。
A、插入B、选择C、希尔D、二路归并2、用线性探测法查找闭散列表,可能要探测多个散列地址,这些位置上的键值(D )A、一定都是同义词B、一定都不是同义词C、都相同D、不一定都是同义词3、将含有83个结点的完全二叉树从根结点开始编号,根为1号,后面按从上到下、从左到右的顺序对结点编号,那么编号为41的双亲结点编号为(D )A、42B、40C、21D、204、一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是(B )A、不确定B、n-i+1C、ID、n-i5、设深度为k的二叉树上只有度为0和度为2的节点,则这类二叉树上所含结点总数最少(C)个A、k+1B、2kC、2k-1D、2k+1判断题(每小题1分,总分10分)(A==对,B==错)6、在一棵二叉树中,假定每个结点只有左子女,没有右子女,对它分别进行前序遍历和后序遍历,则具有相同的结果。
数据结构第三次作业题及答案.doc
第3次作业一、填空题(本大题共30分,共10小题,每小题3分)1.具有8个顶点的无向图,边的总数最多为_______ o2.树在计算机内的表示方式有______ , ______ , _____ o3.设有一个n阶的下三角矩阵A,如果按照行的顺序将下三角矩阵中的元素(包描对角线上元素)存放在n(n+l)个连续的存储单元中,则A[i][j]与A[0][0] Z间有 _______ 个数据元素。
4.队列是限制插入只能在表的一端,而删除在表的另一端进行的线性表,其特点是______ O5.在广义表的存储结构中,单元索结点与表元索结点有一个域对应不同,各自分别为______ 域和_______ 域。
6.构造连通网最小生成树的两个典型算法是______ O7.在一个稀疏矩阵中,每个非零元索所对应的三元组包括该元索的_________ 、和三项。
8.已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树有__________ 个叶子结点。
9.非空的单循环链表head的尾结点(由p指针所指)满足条件10.在哈希文件屮,处理冲突的方法通常有______ 、______ 、______ 和______ 四种。
二、算法设计题(本大题共20分,共2小题,每小题10分)1.回文是指止读反读均相同的字符序列,如〃abba〃和〃abdba"均是回文,但"good" 不是回文。
试写一个算法判定给定的字符向量是否为回文。
2.编写一个算法将一个头结点指针为pa的单链表A分解成两个单链表A和B,其头结点指针分别为g和pb,使得A链表小含有原链表AM序号为奇数的元索,而链表B屮含有原链表A屮序号为偶数的元索,且保持原来的相对顺序。
三、简答题(本大题共20分,共4小题,每小题5分)1.何时选用顺序表、何时选用链表作为线性表的存储结构为宜?2.一棵度为2的树与一棵二义树有何区别?3.指出下述程序段的功能是什么?void Demol( SeqStack *S, int m){ // 设DataType 为int 型SeqStack T; inti;InitStack (&T);while (! StackEmpty( S))if (( i二Pop(S)) !=m) Push( &T, i);while (! StackEmpty( &T)){i二Pop(&T); Push(S, i);4.给定集合{15, 3, 14, 2, 6, 9, 16, 17}(1)(3分)用□表示外部结点,用O表示内部结点,构造相应的huffman 树:(2)(2分)计算它的带权路径长度:(3)(2分)写出它的huffman编码:(4)(3分)huffman编码常用来译码,请用语言叙述写出其译码的过程。
15秋北航《算法与数据结构》在线作业二100分答案
15秋北航《算法与数据结构》在线作业二100分答案北航《算法与数据结构》在线作业二单选题一、单选题(共 25 道试题,共 100 分。
)1. 对顺序表上的插入、删除算法的时间复杂性分析来说,通常以()为标准操作A. 条件判断B. 结点移动C. 算术表达式D. 赋值语句-----------------选择:B2. 在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行()。
A. HL=p;p->next=HL;B. p->next=HL;HL=p;C. p->next=HL;p=HL;D. p->next=HL->next;HL->next=p;-----------------选择:B3. 线性表是一个具有n个()的有限序列。
A. 表元素B. 字符C. 数据元素D. 数据项-----------------选择:C4. 若给定的关键字集合为{20,15,14,18,21,36,40,10},一趟快速排序结束时,键值的排列为( )。
A. 10,15,14,18,20,36,40,21B. 10,15,14,18,20,40,36,21C. 10,15,14,20,18,40,36,21D. 15,10,14,18,20,36,40,21-----------------选择:A5. 按照二叉树的定义,具有3个结点的二叉树有()种。
A. 3B. 4C. 5D. 6-----------------选择:C6. 下列有关图遍历的说法中不正确的是()。
A. 连通图的深度优先搜索是个递增过程B. 图的广度优先搜索中邻接点的寻找具有“先进先出”的特征C. 非连通图不能用深度优先搜索法D. 图的遍历要求每个顶点仅被访问一次-----------------选择:C7. Substr('DATA STRUCTURE',5,9)=()。
A. STRUCTURE'B. 'ASTUCTUR'C. 'DATA STRUCTRUE'。
北京航空航天大学程序设计与数据结构试题
北京航空航天大学程序设计与数据结构试题(2002年)一、简答题1. “数据结构”课程是计算机专业的基础课还是专业课,或者专业基础课?(2’)2. 学习“数据结构”课程需要哪些课程作为它的基础(举例两门课程)?若没有这些知识,对学习“数据结构”课程可能会产生哪些影响?请举例说明(不超过100字)。
(4’)3. “数据结构”课程将为那些课程学习奠定必要的基础?请举例说明哪些课程(举例两门课程)用到了“数据结构”课程的哪些知识(不超过100字)。
(4’)二、(5’)请推导出结论:具有n0个叶结点的哈夫曼树(Huffman)的分支总数为2(n0-1)。
三、单项选择题(2’x15)1. 线性链表中各链接点之间的地址__________。
A)必须连续B)部分地址必须连续C)不一定连续D)连续与否无所谓2. 在非空线性链表中由p所指的链接点后面插入一个由q所致的链接点的过程是依次执行动作__________。
A) link(q)←p; link(p)←q; B) link(q)←link(p); link(p)←q;C) link(q)←link(p); p←q; D) link(p)←q; link(q)←p;3. 在非空双向循环链表中由q所指的那个链接点前插入一个p指的链接点的动作对应的语句依次为rlink(p)←q, llink(p)←llink(q), llink(q)←p, __________。
(空白处为一条赋值语句)A) rlink(q)←p B) rlink(llink(q))←pC) rlink(llink(p))←p D) rlink(rlink(p))←p4. 在初始为空的堆栈中依次插入元素f,e,d,c,b,a以后,连续进行了三次删除操作,此时栈顶元素是__________。
A) c B) d C) b D) e5. 若某堆栈的输入序列为1,2,3,……,n,输出序列的第1个元素为n,则第i个输出元素为__________。
北京航空航天大学算法设计与分析试题答案(软件)
2006-2007学年第二学期《计算机算法设计与分析》试题院系:软件学院专业:软件工程年级:2004级一.简答题(共10分)略二.计算题(35分)1. (6 分)对下列各组函数f(n)和g(n),确定f(n)=O(g(n))或f(n)= Q(g(n))或f(n)=8 (g(n))。
(1)f(n)=3n, g(n)=2n2(2)f(n)=log n + 5, g(n)=log n(3)f(n)=log n, g(n尸J n咨:(1)f(n) = Q(g(n)) (2 分)(2)f(n) = 9(g(n)) (2 分)(3)f(n) = O(g(n)) (2 分)2. (8分)采用动态规划策略,计算a= {5,-37-4,-5,9,-2,10,-3,2}的最大子段和, 并给出这个最大子段和的起始下标和终止下标。
[设数组a中的元素下标从1开始。
]要求给出过程。
答:b[1]=5;b[2]=max{b[1]+a[2] , a[2]}=max{2,-3}=2b[3]=max{b[2]+a[3] , a[3]}=max{9,7}=9b[4]=max{b[3]+a[4] , a[4]}=max{5,-4}=5b[5]=max{b[4]+a[5] , a[5]}=max{0,-5}=0b[6]=max{b[5]+a[6] , a[6]}=max{9,9}=9b[7]=max{b[6]+a[7] , a[7]}=max{7,-2}=7b[8]=max{b[7]+a[8] , a[8]}=max{17,10}=17b[9]=max{b[8]+a[9] , a[9]}=max{14,-3}=14b[10]=max{b[9]+a[10] , a[10]}=max{16,2}=16(上述每两行1分,共5分)最大子段和为17 (1分)(若数组下标从1开始)起始下标:6 (1分),终止下标:8 (1分)(若数组下标从0开始)起始下标:5 ( 0.5分),终止下标:7 (0.5分)3 .(11分)设有3件工作分配给3个人,将工作i分配给第j个人所花的费用为C ij,现将为每一个人都分配1件不同的工作,并使总费用达到最小。
北航《算法与数据结构》在线作业三
B. ki<k2i+1<k2i
C. ki≤k2i且ki≤k2i+1(2i+1≤n)
D. ki≤k2i 或ki≤k2i+1(2i+1≤n)
满分:4 分
19. 队列操作的原则是( )。
A. 先进先出
B. 后进先出
C. 只能进行插入
D. 只能进行删除
满分:4 分
5. 非空的循环单链表head的尾节点(由p所指向)满足( )。
A. p->next=NULL
B. p=NULL
C. p->next=head
D. p=head
满分:4 分
6. 以下说法正确的是( )
A. 所谓数据的逻辑结构指的是数据元素之间的逻辑关系
21. 单链表的一个存储结点包含( )
A. 数据域或指针域
B. 指针域或链域
C. 指针域和链域
D. 数据域和链域
满分:4 分
22. 下列关于树说法正确的是
A. 树的先根遍历序列与其对应的二叉树的先根遍历序列相同
B. 树的先根遍历序列与其对应的二叉树的后根遍历序列相同
A. 快速排序
B. 堆排序
C. 归并排序
D. 插入排序
满分:4 分
25. 根据操作的效果,可将运算分成加工型运算、引用型运算两种基本类型。对于表格处理中的五种功能以下解释错误的是
A. 查找引用型运算,功能是找出满足某种条件的结点在s(线形结构)中的位置
B. 读取引用型运算 功能是读出s(线形结构)中某指定位置结点的内容
16. 每次从无序表中取出一个元素,把它插入到有序表中的适当位置,此种排序方法叫做()排序.
北航算法和数据结构作业1答案
单项选择题第1题一个深度为L的满K叉树有如下性质:第L层上的结点都是叶子结点,其余各层上每个结点都有K棵非空子树。
如果按层次顺序从1开始对全部结点编号,问编号为n的结点的父结点(若存在)的编号是多少?()A、2n-1B、Kn-1C、KD、1+2+3+…+K答案:B第2题下一段程序实现的功能是打印以h为头节点的单链表中的所有节点,哪一段程序是正确的:()。
A、p = h while ( p != NULL ) {printf(p->data) p = p->next}B、while ( h != NULL ) {printf(h->data)h = h->next}C、p = h while ( p!= NULL ) {p = p->next printf(p->data)}D、p = h while ( p->next!= NULL ) {p = p->next printf(p->data)}答案:A第3题文件的基本组织方式有:()。
A、顺序组织、索引组织、散列组织和链接方式B、磁盘组织、磁带组织C、数据库组织D、关键字与非关键字答案:A第4题设n为正整数。
试确定下列程序段中带标号@的语句的频度。
X=91; Y=100; While(y>0) @If(x>100){ X=x–10; Y=y–1; }else x=x+1; :()。
A、无穷多次B、1100C、9100D、100答案:B多项选择题第5题下述陈述中哪一项是正确的():A、文件是由记录组成的集合B、记录是文件存取的基本单位C、文件是由数据项组成的D、数据项有时也被称之为字段答案:B|D第6题下列排序算法中哪些是不稳定的():A、昌泡排序B、选择排序C、快速排序D、堆排序答案:B|C|D判断题第7题在单向链表中,在X指向的结点后插入结点,对应的方法与X是否是头指针无关。
数据结构练习3答案..
数据结构练习(三)参考一、选择题1.顺序查找法适合于存储结构为的线性表A)哈希存储B)顺序存储或链式存储C)压缩存储D)索引存储2.一个长度为100的已排好序的表,用二分查找法进行查找,若查找不成功,至少比较________次。
A)9 B)8 C)7 D)63.采用顺序查找方法查找长度为n的线性表时,平均比较次数为。
A)n B)n/2 C)(n+1)/2 D)(n-1)/24.对线性表进行折半查找时,要求线性表必须。
A)以顺序方式存储B)以顺序方式存储,且结点按关键字有序排列C)以链表方式存储D)以链表方式存储,且结点按关键字有序排列5.采用二分查找法查找长度为n的线性表时,每个元素的平均查找长度为。
A)O(n2)B)O(nlog2n)C)O(n)D)O(log2n)6.有一个长度为12的有序表R[0…11],按折半查找法对该表进行查找,在表内各元素等概率查找情况下查找成功所需的平均比较次数为。
A)35/12 B)37/12 C)39/12 D)43/127.有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,99},当采用折半查找法查找关键字为82的元素时,次比较后查找成功。
A)1 B.2 C)4 D)88.当采用分块查找时,数据的组织方式为。
A)数据分成若干块,每块内存数据有序B)数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块C)数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块D)数据分成若干块,每块(出最后一块外)中的数据个数需相同9.采用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块时,每块应有个结点最佳。
A)10 C)6 D)62510.不能生成右图所示二叉排序树的关键字序列是_____。
B)42531 C)45213 D)4231511.按____遍历二叉排序树,可以得到按值递增或递减次序的关键码序列。
数据结构三次作业答案
第三阶段离线作业第七章 图7.1 已知图7.1所示的有向图,请给出该图的⑴ 每个顶点的入/出度;⑵ 邻接矩阵; ⑶ 邻接表;⑷ 逆邻接表;图7.1 (1)(2)A= 0 1 0 0 0 10 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 0 0 0 0 1 0 0 1 0(3)→ →→ → → → → → → → (4)→ → → → →→ → → →7.2 用深度优先搜索和广度优先搜索对图7.2进行遍历(从顶点1出发),给出遍历序列。
图7.2深度优先1→2→4→8→5→3→6→7广度优先1→2→3→4→5→6→7→8第九章查找9.1 画出长度为10的有序表进行折半查找的判定树,并求其等概率时查找成功的平均查找长度。
等概率时查找成功的平均查找长度:ASL succ=(1*1+2*2+3*4+4*3)/10=2.99.2 假设按下述递归方法进行顺序表的查找:若表长≤10,则进行顺序查找,否则进行折半查找。
试画出对表长n=50的顺序表进行上述查找时,描述该查找的判定树,并求出在等概率情况下查找成功的平均查找长度。
ASL succ=(1*1+2*2+3*4+(4+5+6+7+8)*8+9*3)/50=5.689.3 设有一组关键字{19,01,23,14,55,20,84,27,68,11,10,77},采用哈希函数:H(key)=key%13构造哈希表。
⑴采用开放地址法的线性探测再散列方法解决冲突。
⑵采用开放地址法的二次探测再散列方法解决冲突。
⑶采用开放地址法的随机探测再散列方法解决冲突。
⑷采用链地址法解决冲突。
哈希列表012345678910111213关键字011455276819208423111077(2)哈希列表0123456789101112关键字270114556884192010231177(3)哈希列表0123456789101112关键字840155142768192010231177(4)哈希列表0123456789101112指针015519202311771468841027第十章内部排序10.1 已知序列{503,87,512,61,908,170,897,275,653,462},请给出采用快速排序法对该序列作升序排序时的每一趟结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北航《算法与数据结构》在线作业三
一、单选题:
1.在一棵二叉树中,第4层上的结点数最多为( )。
(满分:4)
A. 8
B. 15
C. 16
D. 31
正确答案:A
2.非空的循环单链表head的尾节点(由p所指向)满足( )。
(满分:4)
A. p->next=NULL
B. p=NULL
C. p->next=head
D. p=head
正确答案:C
3.堆排序在最坏情况下,其时间复杂性为()(满分:4)
A. O(nlog2n)
B. O(n2)
C. O(log2n2)
D. O(log2n)
正确答案:A
4.采用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块时,每块应分( )个结点最佳(满分:4)
A. 10
B. 25
C. 6
D. 625
正确答案:B
5.队列操作的原则是( )。
(满分:4)
A. 先进先出
B. 后进先出
C. 只能进行插入
D. 只能进行删除
正确答案:A
6.设字符串S1='ABCDEFG',S2='PQRST',则运算S=CONCAT(SUB(S1,2,LENGTH(S2)),SUB(S1,LENGTH(S2),2))后结果为( )。
(满分:4)
A. BCQR'
B. 'BCDEF'
C. 'BCDEFG'
D. 'BCDEFEF'
正确答案:D
7.算法的时间复杂度,都要以通过算法中执行频度最高的语句的执行次数来确定这种观点(满分:4)
A. 完全正确
B. 完全错误
C. 视情况而定
D. 以上说法均不正确
正确答案:B
8.在索引顺序表中查找一个元素,可用的且最快的方法是()(满分:4)
A. 用顺序查找法确定元素所在块,再用顺序查找法在相应块中查找
B. 用顺序查找法确定元素所在块,再用二分查找法在相应块中查找
C. 用二分查找法确定元素所在块,再用顺序查找法在相应块中查找
D. 用二分查找法确定元素所在块,再用二分查找法在相应块中查找
正确答案:C
9.对有n个记录的有序表采用二分查找,其平均查找长度的量级为()(满分:4)
A. O(log2n)
B. O(nlog2n)
C. O(n)
D. O(n2)
正确答案:A
10.以下说法正确的是( ) (满分:4)
A. 因链栈本身没有容量限制
故在用户内存空间的范围内不会出现栈满情况
B. 因顺序栈本身没有容量限制
故在用户内存空间的范围内不会出现栈满情况
C. 对于链栈而言
在栈满状态下
如果此时再作进栈运算,则会发生“上溢”
D. 对于顺序栈而言在栈满状态下如果此时再作迸栈运算,则会发生“下溢”。
正确答案:A
11.设有两个串(S1和S2),求S1在S2中首次出现的位置的运算称为( )。
(满分:4)
A. 连接
B. 模式匹配
C. 求子串
D. 求串长
正确答案:B
12.设有向图有n个顶点和e条边,采用领接表作为其存储表示,在进行拓扑排序时,总的计算时间为( )。
(满分:4)
A. O(nloge)
B. O(n+e)
C. O(n*e)
D. O(n的平方)
正确答案:B
13.下列图的说法中正确的是( ) 。
(满分:4)
A. 一个具有n 个顶点的无向完全图的边数为n(n-1)
B. 连通图的生成树是该图的一个极大连通子图
C. 图的广度优先搜索是一个递归过程
D. 在非连通图的遍历过程中,每调用一次深度优先搜索算法都得到该图的一个连通分量
正确答案:C
14.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主的存储,a11为第一个元素,其存储地址为1,每个元素占1个地址空间,则a85的地址为( )。
(满分:4)
A. 13
B. 18
C. 33
D. 40
正确答案:C
15.下述几种排序方法中,平均查找长度最小的是( ) (满分:4)
A. 插入排序
B. 选择排序
C. 快速排序
D. 归并排序
正确答案:C
16.以下说法错误的是( ) (满分:4)
A. 用数字式计算机解决问题的实质是对数据的加工处理
B. 程序设计的实质是数据处理;数据的逻辑结构是数据的组织形式,基本运算规定了数据的基本操作方式
C. 运算实现是完成运算功能的算法,或这些算法的设计
D. 数据处理方式总是与数据某种相应的表示形式相联系,反之亦然
正确答案:B
17.二叉树上叶结点数等于( )。
(满分:4)
A. 分支结点数加1
B. 单分支结点数加1
C. 双分支结点数加1
D. 双分支结点数减1
正确答案:C
18.顺序存储结构( ) (满分:4)
A. 仅适合于静态查找表的存储
B. 仅适合于动态查找表的存储
C. 既适合静态又适合动态查找表的存储
D. 既不适合静态又不适合动态查找表的存储
正确答案:C
19.邻接表是图的一种( )。
(满分:4)
A. 顺序存储结构
B. 链式存储结构
C. 索引存储结构
D. 列存储结构
正确答案:B
20.设无向图的顶点个数为n,则该图最多有( )条边。
(满分:4)
A. n-1
B. n(n-1)/2
C. n(n+1)/2
D. 0
正确答案:B
21.设有一个无向图G=(V,E)和G'=(V',E')如果G'为G的生成树,则下面不正确的说法是( ) (满分:4)
A. G'为G 的子图
B. G'为G 的边通分量
C. G'为G的极小连通子图且V'=V
D. G'为G的一个无环子图
正确答案:B
22.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着(满分:4)
A. 数据元素具有同一特点
B. 不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致
C. 每个数据元素都一样
D. 数据元素所包含的数据项的个数要相等
正确答案:B
23.对于含有n个顶点e条边的无向连通图,利用Prim算法生成最小代价生成树其时间复杂度为( )。
(满分:4)
A. O(log2n)
B. O(n2)
C. O(ne)
D. O(elog2e)
正确答案:B
24.向顺序栈中压入新元素时,应当( )。
(满分:4)
A. 先移动栈顶指针,再存入元素
B. 先存入元素,再移动栈顶指针
C. 先后次序无关紧要
D. 同时进行
正确答案:A
25.设二叉树有n个结点,则其深度为(满分:4)
A. n-1
B. n
C. 5floor(log2n)
D. 无法确定
正确答案:D。