计算机专业数据结构试题答案,2021考研计算机408数据结构试题及答案解析

2021年 408数据结构试题与解析

1、 已知指针指向一个带头结点的非空单循环链表,结点结构data、next,其中next是指向直接后继结点的指针,p是尾指针,q是临时指针。现要删除该链表的第一个元素,正确的语句序列是()

A. h->next=h->next->next;q=h->next;free(q);

B. q=h->next;h->next=h->next->next;free(q);

C. q=h->next;h->next=q->next;if(p!=q)p=h;free(q);

D. q=h->next;h->next=q->next;if(p=q)p=h;free(q);

答案:D

解析:

A选项中,h->next=h->next->next修改了头结点的后继,q指针指向的不是待删除的第一个结点,A错;

B选项中,假设这个链表中只剩下最后一个结点(即尾指针p指向的结点),q=h->next q指针指向带删除的第一个结点(最后一个结点),则删除后,还需要修改p指针,B错;

C、D选项中,q=h->next;h->next=q->next,q指针指向待删除的第一个结点,头结点指向第二个结点,此时若尾指针p和q指针指向同一个位置的话,则我们需要修改尾指针p,将其指向头结点(空单循环链表),则选D

2、 已知初始为空的队列Q的一端能进行入队操作又能进行出队操作,另一端能进行入队操作,若a的入队序列是1,2,3,4,5,则不可能得到的出队序列是()

A.5,4,3,1,2

B.5,3,1,2,4

C.4,2,1,3,5

D.4,1,3,2,5

答案:D

解析:

A选项,1左入右入都可,2右入,3左入,4左入,5左入,得到5,4,3,1,2

B选项,1左入右入都可,2右入,3左入,4右入,5左入,得到5,3,1,2,4

C选项,1左入右入都可,2左入,3右入,4左入,5右入,得到4,2,1,3,5

D选项,1左入右入都可,2右入,错误,3不可能在1和2的中间

3、 已知二维数组A按行优先方法存储,每个元素占用1个存储单元,起始地址A[0][0]为100,若元素A[3][3]的存储地址是220,则元素A[5][5]的存储地址是()

A.295

B.300

C.301

D.306

答案:B

解析:

首先分析题干信息,按行优先方法存储,二维数组的行、列下标都是从0开始,并且已知起始存储地址为100,假设二维数组有n行m列。

LOC(A[3][3])= LOC(A[0][0])+(3*m+4-1)*1=220,可以求出m=39

则LOC(A[5][5])= LOC(A[0][0])+(5*39+6-1)*1=300,选B

4、 某森林F对应的二叉树为T,若T的先序遍历序列是a,b,d,c,e,g,f,中序遍历序列是b,d,a,e,g,c,f,则F中树的棵树是()

A.1

B.2

C.3

D.4

答案:C

解析:

本题考查根据树的遍历序列构造一个唯一的二叉树,再将二叉树转换成对应的森林。

首先先构造二叉树:

2cb2eb29356912ba69e703f43278b546.png

根据孩子兄弟表示法转换成对应的森林:

e337c5091d3d808f236c2ee475fb8189.png

则可以得到有3棵树,选C

5、 若某二叉树有5个叶子结点,其权值分别为10,12,16,21,30。则其最小的带权路径长度(WPL)是()

A.89

B.200

C.208

D.289

答案:B

解析:

本题考查哈夫曼树的构造,以及WPL的计算

78016b512e2d139cdd5603ffa6cb2d50.png

WPL=(16+21+30)*2+(10+12)*3=200,选B

2021年 408数据结构试题与解析

1、 已知指针指向一个带头结点的非空单循环链表,结点结构data、next,其中next是指向直接后继结点的指针,p是尾指针,q是临时指针。现要删除该链表的第一个元素,正确的语句序列是()

A. h->next=h->next->next;q=h->next;free(q);

B. q=h->next;h->next=h->next->next;free(q);

C. q=h->next;h->next=q->next;if(p!=q)p=h;free(q);

D. q=h->next;h->next=q->next;if(p=q)p=h;free(q);

答案:D

解析:

A选项中,h->next=h->next->next修改了头结点的后继,q指针指向的不是待删除的第一个结点,A错;

B选项中,假设这个链表中只剩下最后一个结点(即尾指针p指向的结点),q=h->next q指针指向带删除的第一个结点(最后一个结点),则删除后,还需要修改p指针,B错;

C、D选项中,q=h->next;h->next=q->next,q指针指向待删除的第一个结点,头结点指向第二个结点,此时若尾指针p和q指针指向同一个位置的话,则我们需要修改尾指针p,将其指向头结点(空单循环链表),则选D

2、 已知初始为空的队列Q的一端能进行入队操作又能进行出队操作,另一端能进行入队操作,若a的入队序列是1,2,3,4,5,则不可能得到的出队序列是()

A.5,4,3,1,2

B.5,3,1,2,4

C.4,2,1,3,5

D.4,1,3,2,5

答案:D

解析:

A选项,1左入右入都可,2右入,3左入,4左入,5左入,得到5,4,3,1,2

B选项,1左入右入都可,2右入,3左入,4右入,5左入,得到5,3,1,2,4

C选项,1左入右入都可,2左入,3右入,4左入,5右入,得到4,2,1,3,5

D选项,1左入右入都可,2右入,错误,3不可能在1和2的中间

3、 已知二维数组A按行优先方法存储,每个元素占用1个存储单元,起始地址A[0][0]为100,若元素A[3][3]的存储地址是220,则元素A[5][5]的存储地址是()

A.295

B.300

C.301

D.306

答案:B

解析:

首先分析题干信息,按行优先方法存储,二维数组的行、列下标都是从0开始,并且已知起始存储地址为100,假设二维数组有n行m列。

LOC(A[3][3])= LOC(A[0][0])+(3*m+4-1)*1=220,可以求出m=39

则LOC(A[5][5])= LOC(A[0][0])+(5*39+6-1)*1=300,选B

4、 某森林F对应的二叉树为T,若T的先序遍历序列是a,b,d,c,e,g,f,中序遍历序列是b,d,a,e,g,c,f,则F中树的棵树是()

A.1

B.2

C.3

D.4

答案:C

解析:

本题考查根据树的遍历序列构造一个唯一的二叉树,再将二叉树转换成对应的森林。

首先先构造二叉树:

a96f2872610d95244b86468b1649b560.png

根据孩子兄弟表示法转换成对应的森林:

a920198ba3adfc6a027c2feaf781976a.png

则可以得到有3棵树,选C

5、 若某二叉树有5个叶子结点,其权值分别为10,12,16,21,30。则其最小的带权路径长度(WPL)是()

A.89

B.200

C.208

D.289

答案:B

解析:

本题考查哈夫曼树的构造,以及WPL的计算

1b39661fe3af73db81d43d8716b5b5a2.png

WPL=(16+21+30)*2+(10+12)*3=200,选B

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值