#38. 数据结构(补充)
数据结构(补充)
- 链表不具备的特点是( )。 {{ select(1) }}
- 可随机访问任何一个元素
- 插入、删除操作不需要移动元素
- 无需事物估计存储空间大小
- 所需存储空间与存储元素个数成正比
- 下图中所使用的数据结构是( )。
{{ select(2) }}
- 哈希表
- 栈
- 队列
- 二叉树
- 表达式
a * (b + c) * d的后缀表达式为( ),其中*和+是运算符。 {{ select(3) }}
* * a + b c da b c + * d *a b c + d * *a * * + b c d
- 有 个元素,按照 的顺序进入栈 S ,请问下列哪个出栈序列是非法的()。 {{ select(4) }}
5 4 3 6 1 24 5 3 1 2 63 4 6 5 2 12 3 4 1 5 6
- 链表和数组的区别包括()。 {{ select(5) }}
- 数组不能排序,链表可以
- 链表比数组能存储更多的信息
- 数组大小固定,链表大小可动态调整
- 以上均正确
- 对假设栈 和队列 的初始状态为空。存在 六个互不相同的数据,每个数据按照进栈 、出栈 、进队列 、出队列 的顺序操作,不同数据间的操作可能会交错。已知栈 中依次有数据 和 进栈,队列 依次有数据 和 出队列。则栈 的容量至少是( )个数据。 {{ select(6) }}
- 对表达式
a + (b - c) * d的前缀表达式为( ),其中+、-、*是运算符。 {{ select(7) }}
* + a - b c d+ a * - b c da b c - d * +a b c - + d
- 以下哪组操作能完成在双向循环链表结点 之后插入结点 的效果(其中, 域为结点的直接后继, prev 域为结点的直接前驱):( )。 {{ select(8) }}
p->next->prev=s; s->prev=p; p->next=s; s->next=p->next;p->next->prev=s; p->next=s; s->prev=p; s->next=p->next;s->prev=p; s->next=p->next; p->next=s; p->next->prev=s;s->next=p->next; p->next->prev=s; s->prev=p; p->next=s;
-
假设有一个链表的节点定义如下:
struct Node { int data; Node* next; };现在有一个指向链表头部的指针:Node* head。如果想要在链表中插入一个新的节点,其成员 data 的值为 42,并使新节点成为链表的第一个节点,下面哪个操作是正确的?()
{{ select(9) }}
Node* newNode = new Node; newNode->data = 42; newNode->next = head; head= newNode;Node* newNode = new Node; head->data = 42; newNode->next = head; head = newNode;Node* newNode = new Node; newNode->data = 42; head->next = newNode;Node* newNode = new Node; newNode->data = 42; newNode->next = head;
- 后缀表达式
6 2 3 + - 3 8 2 / + * 2 ^ 3 +对应的中缀表达式是() {{ select(10) }}
( ( 6 - ( 2 + 3 ) ) * ( 3 + 8 / 2 ) ) ^ 2 + 36 - 2 + 3 * 3 + 8 / 2 ^ 2 + 3( 6 - ( 2 + 3 ) ) * ( ( 3 + 8 / 2 ) ^ 2 ) + 36 - ( ( 2 + 3 ) * ( 3 + 8 / 2 ) ) ^ 2 + 3
- 给定一个空栈,支持入栈和出栈操作。若入栈操作的元素依次是
1 2 3 4 5 6,其中 最先入栈, 最后入栈,下面哪种出栈顺序是不可能的? ( ) {{ select(11) }}
6 5 4 3 2 11 6 5 4 3 22 4 6 5 3 11 3 5 2 4 6
- 以 A0 作为起点,对下面的无向图进行深度优先遍历时,遍历顺序不可能是( )。
{{ select(12) }}
A0, A1 , A2, A3A0, A1, A3, A2A0, A2, A1, A3A0, A3, A1, A2
- 假设字母表 {} 在字符串出现的频率分别为 。若使用哈夫曼编码方式对字母进行不定长的二进制编码,字母 的编码长度为( )位。 {{ select(13) }}
- 或
- 一棵有 个结点的完全二叉树用数组进行存储与表示,已知根结点存储在数组的第 个位置。若存储在数组第 个位置的结点存在兄弟结点和两个子结点,则它的兄弟结点和右子结点的位置分别是( )。 {{ select(14) }}
- 考虑由 个顶点构成的有向连通图,采用邻接矩阵的数据结构表示时,该矩阵中至少存在( )个非零元素。 {{ select(15) }}
- 以下对数据结构的表述不恰当的一项为:()。 {{ select(16) }}
- 图的深度优先遍历算法常使用的数据结构为栈。
- 栈的访问原则为后进先出,队列的访问原则是先进先出。
- 队列常常被用于广度优先搜索算法。
- 栈与队列存在本质不同,无法用栈实现队列。
- 根节点高度为 ,一颗拥有 个节点的三叉树高度至少为()。 {{ select(17) }}
- 假设有一组字符 {},对应的频率分别为 , , , , , ,请问以下哪个选项是字符 分别对应的一组哈夫曼编码?() {{ select(18) }}
- 给定一棵二叉树,其前序遍历结果为:
ABDECFG,中序遍历结果为:DEBACFG。请问这棵树的正确后序遍历结果是什么?() {{ select(19) }}
EDBGFCAEDGBFCADEBGFCADBEGFCA
- 考虑一个有向无环图,该图包含四条有向边:, , 和 。以下哪个选项是这个有向无环图的一个有效的拓扑排序?()
{{ select(20) }}
- 在无向图中,所有顶点的度数之和等于( ) 。 {{ select(21) }}
- 图的边数
- 图的边数的 倍
- 图的点数
- 图的点数的 倍
- 已知二叉树的前序遍历为 [A, B, D, E, C, F, G] ,中序遍历为 [D, B, E, A, F, C, G],求二叉树的后序遍历。
{{ select(22) }}
- [𝐷, 𝐸, 𝐵, 𝐹, 𝐺, 𝐶, 𝐴]
- [𝐷, 𝐸, 𝐵, 𝐹, 𝐺, 𝐴, 𝐶]
- [𝐷, 𝐵, 𝐸, 𝐹, 𝐺, 𝐶, 𝐴]
- [𝐷, 𝐸, 𝐵, 𝐹, 𝐺, 𝐴, 𝐶]