数据结构包括数据的 逻辑结构 、 数据的 存储结构 和数据的 运算 这三个方面的内容
在顺序表中访问任意一结点的时间复杂度均为 O(1)
线性表中结点的集合是 有限 的, 结点间的关系是 一对一 的
在具有 n 个单元的循环队列中, 队满时共有 n-1 个元素
数据的运算最常用的有 5 种, 它们分别是 插入 、 删除、 修改、 查找 、 排序 。
数据结构按逻辑结构可分为两大类, 它们分别是 线性结构 和 非线性结构 。
向栈中压入元素的操作是先 移动栈顶指针 , 后 存入元素
把一棵树转换为二叉树后, 这棵二叉树的形态不是唯一的
二叉树是非线性数据结构, 所以顺序存储结构和链式存储结构都能存储
大多数排序算法都没有两个基本的操作: 比较 和 移动
散列法存储的基本思想是由 关键字的值 决定数据的存储地址
向量、 栈和队列都是 线性 结构,不 可以在向量的 任何 位置插入和删除元素
从循环队列中删除一个元素时, 其操作是 先 移动队首指针 , 后 取出元素
在 n 个结点的单链表中要删除已知结点*p, 需找到它的前驱结点的地址, 其时间复杂度为 O(n)。
在有序的顺序表和有序的链表上, 均可以使用折半查找法来提高查找速度
线性表采用顺序存储, 必须占用一片连续的存储单元。
在双链表中要删除已知结点*p, 其时间复杂度为(O(n))。
在(链队列为空) 的情况下, 链队列的出队操作需要修改尾指针。
为解决队列“假满” 问题, 可以采用循环队列实现队列存储
对顺序栈而言, 在栈满状态, 如果此时再作进栈运算, 则会发生“下溢”
在具有 n 个结点的双链表中做插入、 删除运算, 平均时间 复杂度为(O(1))。
在具有 n 个结点的完全二叉树中, 结点 i(i>1) 的父结点是
A. 2i
B. 不存在
C. 2i+1
D. ⌊ i/2⌋
以二叉链表作为二叉树的存储结构, 在具有n 个结点的二叉链表中(n>0), 空链域的个数为
A. 2n - 1
B. n - 1
C. n + 1
D. 2n + 1
由二叉树的( ) 遍历, 可以惟一确定一棵二叉树
A. 前序和后序
B. 前序和中序
C. 后序
D. 中序
在完全二叉树中, 如果一个结点是叶子结点, 则它没有。
A. 左孩子结点
B. 右孩子结点
C. 左、 右孩子结点
D. 左、 右孩子结点和兄弟结点
在具有 n 个结点的完全二叉树中, 若结点 i 有左孩子, 则结点 i 的左孩子编号为。
A. 2i
B. 不存在
C. 2i+1
D. 2i-1
在具有 n 个结点的完全二叉树中, 若结点 i 有左孩子, 则结点 i 的右孩子编号为。
A. 2i
B. 不存在
C. 2i+1
D. 2i-1
若由树转化得到的二叉树是非空的二叉树, 则二叉树形状是。
A. 根结点无右子树的二叉树
B. 根结点无左子树的二叉树
C. 根结点可能有左子树和右子树
D. 各结点只有一个孩子的二叉树
某二叉树的前序和后序序列正好相反, 则该二叉树一定是 的二叉树。
A. 空或只有一个结点
B. 高度等于其结点数
C. 任一结点无左孩子
D. 任一结点无右孩子
在任何一棵二叉树中, 度为0 的结点 n 0 和度为2 的结点 n 2 之间的关系是n0=n2-1。
一个二叉树中, 度为 2 的结点有 3 个, 则叶结点有(4) 个。
二叉树通常有(顺序) 存储结构和(链式) 存储结构两种。
完全二叉树中, 若一个结点没有左孩子, 则它必须是叶子。
中序遍历二叉排序树的结点不能得到排好序的结点序列。
由二叉树的前序和中序遍历序列可以推导出此二叉树的后序遍历序列。