没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
“数据结构”期末考试试题
一、单选题(每小题 2 分,共 12 分)
1.在一个单链表 HL 中,若要向表头插入一个由指针 p 指向的结点,则执行( )。
B
A. HL=ps p 一>next=HL
B. p 一>next=HL;HL=p3
C. p 一>next=Hl;p=HL;
D. p 一>next=HL 一>next;HL 一>next=p;
2.n 个顶点的强连通图中至少含有( )。B
A.n—l 条有向边 B.n 条有向边
C.n(n—1)/2 条有向边 D.n(n 一 1)条有向边
3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。C
A.O(1) B.O(n)
C.O(1Ogzn) D.O(n2)
4.由权值分别为 3,8,6,2,5 的叶子结点生成一棵哈夫曼树,它的带权
路径长度为( )。D
A.24 B.48
C. 72 D. 53
5.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最
好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。B
A.整形 B.引用型
C.指针型 D.常值引用型·
6.向一个长度为 n 的顺序表中插人一个新元素的平均时间复杂度为( )。A
A.O(n) B.O(1)
C.O(n2) D.O(10g2n)
二、填空题(每空 1 分,共 28 分)
1.数据的存储结构被分为——、——、——和——四种。
2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自
分别为——域和——域。
3.——中缀表达式 3 十 x*(2.4/5—6)所对应的后缀表达式为————。
4.在一棵高度为 h 的 3 叉树中,最多含有——结点。
5.假定一棵二叉树的结点数为 18,则它的最小深度为——,最大深度为——·
6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定——该结
点的值,右子树上所有结点的值一定——该结点的值。
7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层——调整,
直到被调整到——位置为止。
8.表示图的三种存储结构为——、——和———。
9.对用邻接矩阵表示的具有 n 个顶点和 e 条边的图进行任一种遍历时,其时间
复杂度为——,对用邻接表表示的图进行任一种遍历时,其时间复杂度为——。
10.从有序表(12,18,30,43,56,78,82,95)中依次二分查找 43 和
56 元素时,其查找长度分别为——和——·
11.假定对长度 n=144 的线性表进行索引顺序查找,并假定每个子表的长度
均为 ,则进行索引顺序查找的平均查找长度为——,时间复杂度为——·
12.一棵 B—树中的所有叶子结点均处在——上。
13.每次从无序表中顺序取出一个元素,把这插入到有序表中的适当位置,此
种排序方法叫做——排序;每次从无序表中挑选出一个最小或最大元素,
把它交换到有序表的一端,此种排序方法叫做——排序。
14.快速排序在乎均情况下的时间复杂度为——,最坏情况下的时间复杂度为—
—。
三、运算题(每小题 6 分,共 24 分)
1.假定一棵二叉树广义表表示为 a(b(c,d),c(((,8))),分别写出对它进行
先序、中序、后序和后序遍历的结果。
先序:
中序;
后序:
2.已知一个带权图的顶点集 V 和边集 G 分别为:
V={0,1,2,3,4,5};
E={(0,1)8 , (0, 2)5, (0 ,3)2 , (1, 5)6, (2 , 3)25 , (2, 4)13 ,
(3,5)9,(4,5)10},
则求出该图的最小生成树的权。
最小生成树的权;
3.假定一组记录的排序码为(46,79,56,38,40,84,50,42),则利用
堆排序方法建立的初始堆为——。
4.有 7 个带权结点,其权值分别为 3,7,8,2,6,10,14,试以它们为叶
子结点生成一棵哈夫曼树,求出该树的带权路径长度、高度、双分支结点数。
带权路径长度:—— 高度:—— 双分支结点数:——。
四、阅读算法,回答问题(每小题 8 分,共 16 分)
1.VOldAC(List&L)
{
InitList(L);
InsertRear(L;25);
InsertFront(L,50);
IntaL4]={5,8,12,15,36};
for(inti=0; i<5; i++)
if (a[i]%2==0)InsertFront(L,a[i]);
elselnsertRear(L,a[i]);
}
该算法被调用执行后,得到的线性表 L 为:
2.void AG(Queue&Q)
{
InitQueue(Q);
inta[5]={6,12,5,15,8};
for(int i=0;i<5; i++)QInsert(Q,a[i]);
QInsert(Q,QDelete(Q));
QInsert(Q,20);
QInsert(Q,QDelete(Q)十 16);
while(!QueueEmpty(Q))cout<<QDelete(Q)<<”;
}
该算法被调用后得到的输出结果为:
五、算法填空,在画有横线的地方填写合适的内容(每小题 6 分,共 12 分)
1.从一维数组 A[n)中二分查找关键字为 K 的元素的递归算法,若查找成功则
返回对应元素的下标,否则返回一 1。
IntBinsch(ElemTypeA[],Intlow,int high,KeyTypeK)
{
if(low<=high)
{
int mid=(low+high)/2;
if(K==A[mid].key)——;
else if (K<A[mid].key)——;
else ;
}
else return—l;
}
2.已知二叉树中的结点类型 BinTreeNode 定义为:
structBinTreeNode{ElemType data;BinTreeNode*left,*right};
其中 data 为结点值域,left 和 right 分别为指向左、右子女结点的指针域。下
面函数的功能是返回二叉树 BT 中值为 x 的结点所在的层号,请在划有横线的
地方填写合适内容。
Int NodeLevel(BinTreeNode * BT,ElemType X)
{
if(BT:=NULL)return 0; //空树的层号为 0
else if(BT 一>data==X)return 1; //根结点的层号为 1
//向子树中查找 x 结点
else{
int cl=NodeLevel(BT 一>left,X);
if(cl>=1)return cl+1;
int c2= ;
if——;
//若树中不存在 X 结点则返回 o
else return 0;
}
}
六、编写算法(8 分)
按所给函数声明编写一个算法,从表头指针为 HL 的单链表中查找出具有最大值
的结点,该最大值由函数返回,若单链表为空则中止运行。
EIemType MaxValue(LNOde*HL);
J
J
数据结构复习资料
一、填空题
1. 数据结构是一门研究非数值计算的程序设计问题中计算机的 操作对象 以及
它们之间的 关系 和运算等的学科。
2. 数据结构被形式地定义为(D, R),其中 D 是 数据元素 的有限集合,R
是 D 上的 关系 有限集合。
3. 数据结构包括数据的 逻辑结构 、数据的 存储结构 和数据的 运算 这三个
方面的内容。
4. 数据结构按逻辑结构可分为两大类,它们分别是 线性结构 和 非线性结构
。
5. 线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,
图形结构中元素之间存在多对多关系。
6. 在线性结构中,第一个结点 没有 前驱结点,其余每个结点有且只有 1 个前
驱结点;最后一个结点 没有 后续结点,其余每个结点有且只有 1 个后续结点。
7. 在树形结构中,树根结点没有 前驱 结点,其余每个结点有且只有 1 个前驱
结点;叶子结点没有 后续 结点,其余每个结点的后续结点数可以任意多个 。
8. 在图形结构中,每个结点的前驱结点数和后续结点数可以 任意多个 。
9.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序 、 链式 、
索引 和 散列 。
10. 数据的运算最常用的有 5 种,它们分别是插入 、 删除、修改、 查找 、排序。
11. 一个算法的效率可分为 时间 效率和 空间 效率。
12. 在顺序表中插入或删除一个元素,需要平均移动 表中一半元素,具体移动的
元素个数与 表长和该元素在表中的位置 有关。
13. 线性表中结点的集合是 有限 的,结点间的关系是 一对一 的。
14. 向一个长度为 n 的向量的第 i 个元素(1≤i≤n+1)之前插入一个元素时,需向
后移动 n-i+1 个元素。
15. 向一个长度为 n 的向量中删除第 i 个元素(1≤i≤n)时,需向前移动 n-i 个元
素。
16. 在顺序表中访问任意一结点的时间复杂度均为 O(1) ,因此,顺序表也称为
随机存取 的数据结构。
17. 顺序表中逻辑上相邻的元素的物理位置 必定相邻。单链表中逻辑上相邻的元
素的物理位置 不一定 相邻。
18.在单链表中,除了首元结点外,任一结点的存储位置由 其直接前驱结点的链
域的值 指示。
19. 在 n 个结点的单链表中要删除已知结点*p,需找到它的前驱结点的地址,
其时间复杂度为 O ( n ) 。
20. 向量、栈和队列都是 线性 结构,可以在向量的 任何 位置插入和删除元
素;对于栈只能在 栈顶 插入和删除元素;对于队列只能在 队尾 插入和 队
首 删除元素。
21. 栈是一种特殊的线性表,允许插入和删除运算的一端称为 栈顶 。不允许
插入和删除运算的一端称为 栈底 。
22. 队列 是被限定为只能在表的一端进行插入运算,在表的另一端进行删除
运算的线性表。
23. 不包含任何字符(长度为
0 )的串 称为空串; 由一个或多个空格(仅由
空格符)组成的串 称为空白串。
24. 子串的定位运算称为串的模式匹配; 被匹配的主串 称为目标串, 子串
剩余29页未读,继续阅读
资源评论
LynnCoder
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功