C/C++笔试易错与高频题型&图解知识点(三)——数据结构部分(持续更新中)

目录

[1. 排序](#1. 排序)

[1.1 冒泡排序的改进](#1.1 冒泡排序的改进)

[2. 二叉树](#2. 二叉树)

[2.1 二叉树的性质](#2.1 二叉树的性质)

[3. 栈 & 队列](#3. 栈 & 队列)

[3.1 循环队列](#3.1 循环队列)

[3.2 链式队列](#3.2 链式队列)

[4. 平衡二叉搜索树------AVL树、红黑树](#4. 平衡二叉搜索树——AVL树、红黑树)

[5 优先级队列(堆)](#5 优先级队列(堆))

1. 排序

1.1 冒泡排序的改进

下面的排序方法中,关键字比较次数与记录的初始排列无关的是______。

A. 希尔排序

B. 冒泡排序

C. 直接插入排序

D. 直接选择排序

答案:D

基础的冒泡排序是与初始排列无关的,但是改进的冒泡排序,当一趟排序之后没有交换,则说明序列已经有序,则可退出排序,例如一个已经排好序的序列,第一次循环之后就可以退出排序了;

所以说对比B选项和D选项,D选项肯定时最优解

2. 二叉树

2.1 二叉树的性质

① 对于任意一颗二叉树,设叶子节点个数为n0,度为二的节点的个数为n2,则满足n0 = n2 + 1

某二叉树共有 399 个结点,其中有 199 个度为 2 的结点,则该二叉树中的叶子结点数为() A. 不存在这样的二叉树

B. 200

C. 198(错误)

D. 199

答案:B

②深度和高度

根节点的深度为0

3. 队列

3.1 循环队列

现有一循环队列,其队头指针为front,队尾指针为rear;循环队列长度为N。其队内有效长度为()("左闭右开")

A. (rear - front + N) % N + 1(错误)

B. (rear - front + N) % N

C. (rear - front) % (N + 1)

D. (rear - front + N) % (N - 1)

答案:B

3.2 链式队列

用不带头结点的单链表存储队列,其队头指针指向队头结点,队尾指针指向队尾结点,则在进行出队操作时()

A. 仅修改队头指针(错误)

B. 仅修改队尾指针

C. 队头、队尾指针都可能要修改

D. 队头、队尾指针都要修改

答案:C

※当队列只有一个节点时,出队列对头队尾指针均需要修改、

4. 栈

4.1 运算表达式

表达式3*2^(4+2*2-6*3)-5求值过程中当扫描到6时,对象栈和运算符栈为(),其中^为乘幂

A. 3,2,4,1,1;(*^(+*-

B. 3,2,8;(*^-(错误)

C. 3,2,4,2,2;(*^(-

D. 3,2,8;*^(-

答案:D

数据栈:有数据就直接入栈

运算符栈 :设遍历到当前的运算符位x ,如果栈不为空,比较栈顶与当前运算符优先级x,当栈顶运算符优先级大于或者等于x的优先级,则出栈,并将两个数据栈的数据出栈,计算出对应的数据,加入到数据栈中

5. 平衡二叉搜索树------AVL树、红黑树

若将关键字1,2,3,4,5,6,7 依次插入到初始为空的平衡二叉树 T 中,则 T 中平衡因子为 0 的分支结点的个数是( )

A. 0

B. 1

C. 2

D.3

答案:D (分支节点:不包含叶子节点)

6. 优先级队列(堆)

下述二叉树中,哪一种满足性质:从任一结点出发到根的路径上所经过的结点序列按其关键字有序()

A. 二叉排序树(错误)

B. 哈夫曼树

C. AVL树

D. 堆

答案:D

知识点:小根堆与大根堆(详细看数据结构一、1.2节)

7. 哈希表

采用哈希表组织100万条记录,以支持字段A快速查找,则()

A. 理论上可以在常数时间内找到特定记录(错误:发生哈希冲突)

B. 所有记录必须存在内存中

C. 拉链式哈希曼最坏查找时间复杂度是O(n)

D. 哈希函数的选择跟A无关

答案:C

相关推荐
Tel19925308004几秒前
ENDAT2.2 协议信号转 SSI /BISS-C转换卡 ENDAT2.2 协议信号转DMC多摩川高速协议转换器 互转卡
c语言·开发语言·网络
三品吉他手会点灯28 分钟前
C语言学习笔记 - 12.C语言简介 - 一元二次方程详解
c语言·笔记·学习
re林檎40 分钟前
八大排序算法(C++实现)
c++·算法·排序算法
此生只爱蛋42 分钟前
【vscode环境配置心得】C++版
c++·ide·vscode
记录无知岁月1 小时前
【C/C++】头文件包含问题分析
c语言·开发语言·c++
楚Y6同学1 小时前
QT C++之保存界面设置为配置文件
c++·qt·保存配置
cpp_25011 小时前
P2639 [USACO09OCT] Bessie‘s Weight Problem G
数据结构·算法·动态规划·题解·洛谷·背包dp
谭欣辰1 小时前
C++ 堆 的基础与 二叉堆详解
开发语言·c++
ian4u1 小时前
车载 Android C++ 完整技能路线:从基础到进阶
android·开发语言·c++
郝学胜-神的一滴1 小时前
[力扣 227] 双栈妙解表达式计算:从思维逻辑到C++实战,吃透反向波兰式底层原理
java·前端·数据结构·c++·算法