队列先进先出,在表的一端插入元素,在表的另一端删除元素。允许插入的一端称为队尾(rear),允许删除的一端称为队头(front)
算法是用来描述数据对象之间的关系,包括数据的逻辑关系和存储关系
语言是描述算法的工具
程序是算法在计算机中的实现。程序设计的实质是对实际问题选择一种好的数据结构,加之设计一个好的算法,而好的算法在很大程度上取决于描述实际问题的数据结构。
算法和程序是有区别的
插入最后一个元素的时间复杂度为O(1)
若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用顺序表存储最节省时间。(T)
具有10个叶节点,则度为2的结点为10-1=9
若一个结点没有左孩子,也必定没有右孩子,所以必定为树叶
N*N*log(N)? ?N*logN
N*2*log(N)? ? 2*logN
N 和2相差较大
2*NlogN? ?NlogN
2? ? ? ? ? ? ? ? ?1
相差不大
23/2=11
24/2=12
循环队列执行出队操作时不会引起大量元素移动
队列在队尾插入,在队头删除
循环队列可以用来解决假溢出的现象
A.树的先根遍历序列与其对应的二叉树的先序遍历相同
B.树的后根遍历序列与其对应的二叉树的后序遍历相同
C.树的先根遍历序列与其对应的二叉树的中序遍历相同
D.以上都不对
树的先根遍历等价于二叉树的先序遍历
树的后跟遍历等价于二叉树的中序遍历
A.D
B.H
C.G
D.F
A.结点b一定在结点a的前面
B.结点a一定在结点c的前面
C.结点b一定在结点c的前面
D.结点a一定在结点b的前面
先序:abc
中序:bac
后序:bca
b一定在c前面
A.O(1)
B.O(N)
C.O(N2)
D.O(log2?N)
循环中并没有出现关于n的for循环,所以为o(1)
A.N^1.5
B.Nlog(N^2)
C.(N^2)logN
D.N((logN)^2)
B.2NlogN
C.N*N*logN
D.N*logN*logN
同除NlogN,B=2 C=N? D=logN?
A.2^N和N^N
B.N和2/N
C.(N^2)logN和Nlog(N^2)
D.Nlog(N^2)和NlogN
C.N*NlogN? 2NlogN,同除NlogN? ? N? ?2
D.2NlogN? ? NlogN? ?同除NlogN? ? 2? ?1
p
之后插入s
的语句是:(D)A.p->next=s; s->prior=p; p->next->prior=s ; s->next=p->next;
B.p->next->prior=s; p->next=s; s->prior=p; s->next=p->next;
C.s->prior=p; s->next=p->next; p->next=s; p->next->prior=s;
D.s->prior=p; s->next=p->next; p->next->prior=s; p->next=s;
8.
以二叉链表作为二叉树的存储结构,在具有?n?个结点的二叉链表中(n>0),空链域的个数为 __(A)A.n+1
B.n
C.n?1
D.无法确定
空链域为n+1个,非空链域为n-1个
A.BDACEFG
B.DCBFGEA
C.ABCDEFG
D.GFEDCBA
后序遍历:DCB? FGE A?
A.先序遍历
B.中序遍历
C.后序遍历
D.按层遍历?
A.3
B.4
C.5
D.6
A.8
B.15
C.16
D.32
第i层上的结点个数最多为2^(i-1)
A.A,B,C,D,H,E,I,F,G
B.A,B,D,H,I,E,C,F,G
C.H,D,I,B,E,A,F,C,G
D.H,I,D,B,E,F,G,A,C
A.56
B.57
C.58
D.60
2n-1=115 2n=116 n=58
哈夫曼树只有度为0和度为2的结点,这里的n为度为0的结点数量
A数据的存储结构
B.数据结构
C.数据的逻辑结构
D.数据元素之间的关系
数据结构在计算机内存中表示是指数据的存储结构(物理结构)
A.数据的处理方法
B.数据元素的类型
C.数据元素之间的关系
D.数据的存储方法
在存储数据时,通常不仅要存储各数据元素的值,还要存储数据元素之间的关系
A.p=p->next
B.p->next=p->next->next
C.p->next=p
D.p=p->next->next
A.O(n)
B.O(1)
C.O(n2)
D.O(log2?n)
创建一个包含n个结点的单链表的时间复杂度为o(n)
创建一个包含n个结点的有序单链表的时间复杂度是O(n2)。??
建立一个有序的单链表,则每生成一个新结点时需要和已有的结点进行比较,时间复杂度为O(n),所以确定合适的插入位置的单链表,时间复杂度是O(n^2)。
A.树中的最大度数没有限制,而二叉树结点的最大度数为2;
B.树的结点无左右之分,而二叉树的结点有左右之分;
C.树的每个结点的孩子数为0到多个, 而二叉树每个结点均有两个孩子;
D.树和二叉树均为树形结
二叉树的结点可以小于等于2
A.144
B.145
C.147
D.148
100+11*4=144
A.双亲表示法
B.孩子链表表示法
C.孩子兄弟表示法
D.顺序存储表示法
树的存储形式:孩子链表表示法、孩子兄弟表示法、双亲表示法
若根节点为高度1,一棵具有 1025 个结点的二叉树的高度为 ▁▁▁C▁▁ 。
A.10
B.11
C11~1025 之间
D.10~1024 之间
[log2(1025)]+1=10+1=11
A.都是先进后出
B.都是先进先出
C.只允许在端点处插入和删除元素
D.没有其冋点
A.堆栈
B.队列
C.树
D.图
A.函数的递归调用
B.数组元素的引用
C.多重循环的执行
D.先到先服务的作业调度
队列先进先出的特点,队列的修改依据先进先出的原则
A.存储结构
B.存储实现
C.逻辑结构
D.运算实现
与数据元素本身的形式、内容、相对位置、个数无关的是数据的逻辑结构
A.逻辑
B.存储
C.逻辑和存储
D.物理
A.单链表
B.仅有尾指针的单循环链表
C.仅有头指针的单循环链表
D.双链表
在最后一个元素之后插入一个元素或者删除一个第一个元素,采用仅有尾指针的单循环链表
A.单链表
B.双链表
C.单循环链表
D.带头结点的双循环链表
在最后一个结点之后插入一个结点或者删除最后一个结点,采用带头结点的双循环链表
A.23145
B.23154
C.24135
D.无法确定
前序+后序无法确定一个二叉树
A.只有左子树
B.只有右子树
C.结点的度均为1
D.结点的度均为2
A.必须是连续的
B.连续不连续都可以
C.部分地址必须是连续
D.必须是不连续的
采用链式存储结构存储线性表,其地址连不连续都可以。
A.线性表的逻辑顺序与物理顺序总是一致的。
B.线性表的顺序存储表示优于链式存储表示。
C.线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。
D.二维数组是其数组元素为线性表的线性表。
A.若线性表采用链式存储,则不一定一致
B.在不同的情况下,优缺点不同
D.二维数组是数据元素为一维数组的线性表(数组元素改为数据元素)
A.树中一定没有度为1的结点
B.树中两个权值最小的结点一定是兄弟结点
C.树中任一非叶结点的权值一定不小于下一层任一结点的权值
D.该树一定是一棵完全二叉树
A.哈夫曼树中,只有度为0的点和度为2的点
B.哈夫曼树并不一定是满二叉树
C因为哈弗曼树的构造每一次选择两个权值最小的节点,来形成哈弗曼树的第一个新节点,
,哈弗曼树的构造思想就是贪心的思想,自底向上建树,因此对于一棵哈弗曼树来说,树中任一非叶节点的权值一定不小于下一层的任意节点的权值。D.哈夫曼树并不一定满足完全二叉树的定义
完全二叉树:
1叶子结点只可能出现在最后两层
2.度为1的结点个数为0或1
满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树
A.权值
B.高度
C.带权路径长度
D.度
A.1120
B.1125
C.1140
D.1145
按行序:1000+(4*6+4)*5=1140
A.双链表
B.单循环链表
C.带头结点的双循环链表
D.顺序表
存取任一指定序号的元素和在最后进行插入和删除运算,采用顺序表最好
A.3 2 1 5 4
B.5 1 2 3 4
C.4 5 1 3 2
D.4 3 1 2 5
栈:先进后出
A.1进2进3进 3出 2出1出 4进 5进 5出 4出? 3 2 1 5 4
B1进2进3进4进5进 5出 4出 3出2出1 出 5 4 3 2 1
C1进 2进 3进 4进 4出5进 5出 3出 2 出 1出? ?4 5 3 2 1
D1进 2进 3进 4进 4出 3出 2出1出 5进 5出? ?4 3 2 1 5
A.2 3 4 1 5 6
B.3 4 6 5 2 1
C.5 4 3 6 1 2
D.4 5 3 1 2 6
6比5先进,6比5后出,B不符合
A.1234
B.1324
C.4321
D.1423
2比3先进,2比3后出