数据结构复习题.docx
- 文档编号:3042047
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:7
- 大小:149.87KB
数据结构复习题.docx
《数据结构复习题.docx》由会员分享,可在线阅读,更多相关《数据结构复习题.docx(7页珍藏版)》请在冰豆网上搜索。
数据结构复习题
一、填空题
1.对于给定的n个数据元素,可能构造出、、
和四种逻辑结构。
集合线性结构树形结构网状(图形)结构
2.任何一个算法的设计取决于选定的数据(逻辑)结构,而算法的实现依赖于采
用的。
存储结构
3.任何一个算法的设计取决于选定的,而算法的实现依赖于采用
的0逻辑结构存储结构
4.数据结构是一门研究的程序设计问题中计算机的操作对象以
及它们之间的等等的学科。
非数值计算关系和操作
5.在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂
度是0O(n)
6.带头结点的单向链表L为空的判定条件是;非空的循
环单链表head的尾结点p满足条件。
L->next==NULL
p->next==head
7.栈和队列是两种特殊的线性表,栈的特点是,栈的典型应用有
和口o先进后出表达式求值实现递归过程
8.在具有n个单元的循环队列中,队列满时共有个元素。
n-1
9.若串的长度不能确定,可采用动态存储结构,为串值分配一个存储空间,同时
建立一个串的描述子以指示串值的长度和串在存储空间中的位置,称该结构
为0堆/堆结构
10.稀疏矩阵一般的压缩存储方法有两种,即和0
三元组(表)十字链表
11.稀疏矩阵一般的压缩存储方法有两种,即和十字链表。
三元
组表
12.二维数组A[10][20]采用列序为主方式存储,每个元素占10个存储单元,且
A[0][0]的存储地址是2000,则A[6][12]的地址是。
3260
13.由树转换为二叉树,其根节点的右子树总是。
为空
14.一棵高度为h的满二叉树共有个终端结点。
2h-1
15.已知一棵完全二叉树的第5层有3个结点,其叶子结点数是。
9
16.算法:
是对特定问题求解步骤的一种描述,它的五个基本特征是.
、、、。
有穷性,确定性,
可行性,输入,输出
、解答题
1.证明:
具有n个结点的完全二叉树的深度为llog2nj+1。
2「1-1 即: 2 对不等式取对数,有 k 证毕。 2.已知一个二叉树的结构如下图,写出此二叉树的先序、中序和后序三种遍历 方法。 先序: ABDFKICEHJGvoiddel(SqList&La){if(La->next){p=La->next;while(p->next)if(p->data==p->next->data) {q=p->next;p->next=q->next;free(q);}elsep=p->next; } } 、填空题 1.具有n个顶点的有向图最多有条边。 n(n-1) 2.在无向图G的邻接矩阵中,求第i个结点的度的方法是。 求 邻接矩阵第i行非零元素之和 3.在分块查找方法中,首先查找,然后再查找相应的块。 索引(表) 4.含12个结点的平衡二叉树的最大深度是(设根结点的深度为1)。 5 5.树形选择排序通常采用存储结构。 顺序 6.具有8个顶点的有向完全图有条弧。 56 7.在无向图G的邻接矩阵A中,若A[i][j]等于1,则A[j][i]等于。 1 8.对线性表进行二分查找时,要求线性表必须以方式存储,且结点按关键 字排歹y。 顺序有序 9.在分块查找方法中,首先查找索引,然后再查找相应的。 块 10.与快速排序和堆排序相比,归并排序的最大特点是,它是一种的排序方法。 插入排序/直接插入排序 二、解答题 1. 写出下面带权图的邻接矩阵(从V0开始)。 带权图 510 208 000 007 070 2.用深度优先搜索遍历下图所示的无向图,试给出以1为起点的顶点访问序列 (同一个顶点的多个邻接点,按数字顺序访问),并给出一棵最小生成树。 二、编程题 1.写出下面图的遍历: 广度优先和深度优先两种方法。 <1.>BFS基本思想 从图G中任一顶点vi开始,首先访问顶点vi,接着依次访问vi的所有邻接点 wO,w1,,wt,然后再依次访问wO,w1,,wt邻接的所有未被访问过的顶点,依次 类推,直到图中所有和vi有路径相通的顶点都被访问过为止。 特点: 尽可能地先对横 向进行搜索。 广度优先(BFS): V0->v1->v2->v3->v4->v5->v6->v7 <2.>DFS基本思想 从图G中任一顶点vi出发,先访问顶点vi,并将其访问标志置为true,然后依次 从vi出发搜索vi的没有被访问过的邻接顶点,以该顶点为新的出发点,继续进行深度 优先搜索。 重复上述过程,直到所有顶点都被访问为止。 特点: 遍历过程中尽可能地先对纵深方向进行搜索 深度优先(DFS): V0->v1->v3->v7->v4->v2->v5->v6 2.试设计算法计算一棵给定二叉树上所有结点数目。 假设二叉树的存储结构描述如下: typedefstructBiTNode{ TEIemTypedata; structBiTNode*lchild;*rchild;/*左右孩子指针*/ }BiTNode,*BiTree; intCountNode(BinTreebt){ if(bt==NUll)return(O); else{num1=CountNode(root->lchildnum2=CountNode(root->rchildreturn(num1+num2+1); 3、简述有序表的折半查找算法,并写出查找算法。 <1>折半查找算法思想: 在有序表中,取中间元素作为比较对象,若给定值与中间元素的关键码相等,则查找成功;若给定值小于中间元素的关键码,则在中间元素的左半区继续查找;若给定值大于中间元素的关键码,则在中间元素的右半区继续查找。 不断重复上述查找过程,直到查找成功,或所查找的区域无数据元素,查找失败。 或者回答: 程序: intBinary_Search(S_TBLtbl,KEYkx){/*返回元素在表中的位置,否则返回0*/ elseif(kx>tbl.elem[mid].key)low=mid+1;/* 调整到右半区*/ else{flag=mid;break;}/*查找 成功*/ 4.简述选择排序的基本思想,并写出简单选择排序具体算法。 选择排序基本思想就是"每趟选一排在后"。 基本操作: 每一趟从待排序列中选取一个关键码最小的记录,也即第一趟从n个记录中选取关键码最小的记录,第二趟从剩下的n-1个记录中选取关键码最小的记录,直到整个序列的记录选完。 这样,由选取记录的顺序,便得到按关键码有序的序列。 简单选择排序操作方法: 第一趟,从n个记录中找出关键码最小的记录与第一个记录交换;第二趟,从第二个记录开始的n-1个记录中再选出关键码最小的记录与第二个记录交换; 如此,第i趟,则从第i个记录开始的n-i+1个记录中选出关键码最小的记录与第i个记录交换,直到整个序列按关键码有序。 <2>代码: voidSelectSort(S_TBL*s){ for(i=1;i 选取*/ for(j=i+1,t=i;j<=s->length;j++) {/*在i开始的length-n+1个记录中选关键码最小的记录 */ if(s->elem[t].key>s->elem[j].key) t=j;/*t中存放关键码最小记录的下标*/ } s->elem[t]<-->s->elem[i];/*关键码最小的记录与第i 个记录交换*/ }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 复习题
![提示](https://static.bdocx.com/images/bang_tan.gif)