刷题2

数据结构1:设A、B、C三个字符按先后顺序依次进栈且出栈顺序随意;下面哪个序列为不可能的出栈序列(E)。

A:ABC
B:ACB
C:BAC
D:BCA
E:CAB
F:CBA
解析:E中A进B进C进C出A出错误 。
2:某二叉树共有12个结点,其中叶子结点只有1个。则该二叉树的深度为(根结点在第1层)(D)
A:3
B:6
C:8
D:12
解析:叶子结点只有1个则说明没有二叉树的度为1,则深度为结点数,即深度为12
3:栈在(D)中应用
A:递归调用
B:子程序调用
C:表达式求值
D:以上答案均正确
4:广度优先遍历类似于二叉树的()
A:先序遍历
B:中序遍历
C:后序遍历
D:层序遍历
解析:广度优先搜索:从根结点开始扫描,扫描完之后开始第二层扫描,是层序遍历
5:哈夫曼树中没有度数为 1 的结点。()
A:正确
B:错误
解析:哈夫曼树从底层开始建立,所以只有叶子结点和度为2的结点
6:在栈中,()保持不变。
A:栈的顶
B:栈的底
C:栈指针
D:栈中的数据
解析:栈的顶随着数据的压入,随着数据的弹出下移
7:设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为(C)。
A:front->next=s;front=s;
B:s->next=rear;rear=s;
C:rear->next=s;rear=s;
D:s->next=front;front=s;
解析:rear指向最后一个元素,front指向第一个元素若加入结点X,则队尾的下一个为X,然后rear移动到x的位置,即C选项
8:设指针变量p指向双向链表中结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X的操作序列为(D)。
A:p->right=s; s->left=p; p->right->left=s; s->right=p->right;
B:s->left=p;s->right=p->right;p->right=s; p->right->left=s;
C:p->right=s; p->right->left=s; s->left=p; s->right=p->right;
D:s->left=p;s->right=p->right;p->right->left=s; p->right=s;
解析:
在这里插入图片描述
9:对于双向循环链表,在p指针所指的结点之后插入s指针所指结点的操作应为()
A:p->right=s;s->left=p;p->right->left=s;s->right=p->right;
B:p->right=s;p->right->left=s;s->left=p;s->right=p->right;
C:s->left=p;s->right=p->right;p->right=s;p->right->left=s;
D:s->left=p;s->right=p->right;p->right->left=s;p->right=s;
解析:
在这里插入图片描述
10:在一个长度为 n ( n>1 )的单链表上,设有头和尾两个指针,执行 操作与链表的长度有关的是(B)。
A:删除单链表中的第一个元素
B:删除单链表中的最后一个元素
C:在单链表第一个元素前插入一个新元素
D:在单链表最后一个元素后插入一个新元素
解析:删除单链表最后一个元素,需要将尾指针赋给前一个结点,所以需要遍历至前一个结点,所以与链表的长度有关。

编程题

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
解题思路:
1:左上到右上一个for循环
2:右上至右下一个for循环
3:右下到左下一个for循环
4:左下至左上一个for循环

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值