二叉树的度<=2
在顺序表中,逻辑上相邻的元素,其物理位置一定相邻。在单链表中,逻辑上相邻的元素,其物理位置不一定相邻。
队列适合解决处理顺序与输入顺序相同的问题。
栈适合解决处理顺序与输入顺序相反的问题。
完全二叉树中,若一个结点没有左孩子,则它必定没有右孩子(先左再右),所以是树叶
队列:先进先出,所以进队和出队的顺序是一致的
前序遍历:根 左 右
中序遍历:左 根 右
若没有左孩子,都是根 右
在最后进行插入和删除元素:顺序表
完全二叉树:1.叶子结点只可能出现在最后两层
? ? ? ? ? ? ? ? ? ? ? 2.度为1的结点个数为0或1
124=1+2+4+8+16+32+61;有左孩子
解决问题的效率,跟数据的组织方式有关,跟空间的利用率有关,跟算法的巧妙程度有关。
中序遍历 :BA
前序遍历:AB
A.双链表
B.带头结点的双循环链表
C.单循环链表
D.顺序表
A.O(1)
B.O(N2)
C.O(log2?N)
D.O(N)
A.73
B.74
C.75
D.76
A.度为0的结点都在第h层上(也可能在h-1层上)
B.第i (1≤i<h) 层上有2^(i-1)个结点
C.第i (1≤i<h) 层上结点的度都为2(可能有度为0或者度为1的点)
D.不存在度为1 的结点(肯能会存在)
A.BDACEFG
B.DCBFGEA
C.GFEDCBA
D.ABCDEFG
后序遍历:左 右 根
DCB FGE A?
A.连续不连续都可以
B.部分地址必须是连续
C.必须是不连续的
D.必须是连续的
A.分析算法的可读性和简明性
B.找出数据结构的合理性
C.研究算法中的输入和输出的关系
D.分析算法的效率以求改进
算法分析的目的是分析算法的效率以求改进
①只有一个结点的二叉树的度为0;
②二叉树的度为2;(二叉树的度可以小于等于2)
③二叉树的左右子树可任意交换;(不可以)
④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。
A.②④
B.①②③
C.①④
D.②③④
A树的先根遍历序列与其对应的二叉树的中序遍历相同
B.树的后根遍历序列与其对应的二叉树的后序遍历相同
C.树的先根遍历序列与其对应的二叉树的先序遍历相同
D.以上都不对
树的先根遍历等价于二叉树的先序遍历
树的后跟遍历等价于二叉树的中序遍历
A.100
B.120
C.108
D.110
设首地址为X,每个元素的长度为b则第n个元素的地址为:
x+b*(n-1)=100+2*4=108
A.逻辑结构
B.顺序存储结构
C.链式存储结构
D.以上都不对
A.不需要占用一片相邻的存储空间
B.便于随机存取
C.便于插入和删除操作
D.可以动态地分配存储空间
顺序表优点:随机存取、存储密度大
链表优点:个数自由可充、不必移动元素,修改效率高。
A.任一结点的度均为2
B.二叉树的度为2
C.一棵二叉树的度可以小于2
D.至少有一个结点的度为2
二叉树的度可以小于等于2
A.d
B.c
C.a
D.b
队列:先进先出:
1.abcd
2.cd(删过之后)
A.37
B.23
C.46
D.44
A.带头结点的双循环链表
B.单循环链表
C.双链表
D.单链表
带头结点的双向循环链表,头结点的前驱即可找到最后一个结点,可以快速插入,再向前可以找到最后一二个结点快速删除
单链表找到链表尾部需要扫描整个链表
双链表找到链表尾部也需要扫描整个链表
单循环链表只有单向指针,找到链表尾部也需要扫描整个链表
A.31
B.16
C.15
D.10
高度为5:1+2+4+8+16=31;
A.队列
B.堆栈
C.图
D.树
A.线性表的数据元素包含大量的数据项
B.线性表需经常插入或删除数据元素
C.线性表包含大量的数据元素
D.线性表中数据元素的值需经常修改
?线性表需要经常插入或删除数据元素的情况下适合采用链式存储结构
A.结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构(链式结构存储密度小)
B.逻辑上相邻的结点物理上不必邻接(对)
C.插入、删除运算操作方便,不必移动结点(对)
D.可以通过计算直接确定第i个结点的存储地址(顺序存储结构中)
链式存储结构如果要计算第I个结点的存储地址,不能直接从首结点直接计算,而必须通过指针域来顺序查找,最后再定位。
顺序存储结构可以按照计算确定i个结点的存储位置,链式存储结构必须遍历所有节点才能确定地址。
A.5
B.6
C.4
D.3
A.只有唯一的前趋元素
B.有多个后继元素
C.只有唯一的后继元素
D.有多个前趋元素
A.p->next=p->next->next
B.p->next=p
C.p=p->next->next
D.p=p->next
p
之后插入s
的语句是:(C)A.p->next=s; s->prior=p; p->next->prior=s ; s->next=p->next;
B.s->prior=p; s->next=p->next; p->next=s; p->next->prior=s;
C.s->prior=p; s->next=p->next; p->next->prior=s; p->next=s;
D.p->next->prior=s; p->next=s; s->prior=p; s->next=p->next;
A.254
B.500
C.501
D.250
度为0的结点数为x,度为2的结点数为x-1;
x+x-1=1001? ? 2x=1002 x=501
A.N(log(N^2))
B.N(logN)^2
C.N^2(logN)
D.N^1.5
A.堆栈和队列都不是线性结构,而线性表是
B.线性表用指针,堆栈和队列用数组
C.堆栈和队列都是插入、删除受到约束的线性表
D.线性表和队列都可以用循环链表实现,但堆栈不能
A.不存在第7层
B.32
C.64
D.63
1+2+4+8+16+32+63=126
e
,?a
,?c
,?b
,?d
,?g
,?f
?}。树中与结点a
同层的结点是:(A)A.d
B.g
C.c
D.?f
A.5 4 3 6 1 2
B.3 4 6 5 2 1
C.2 3 4 1 5 6
D.4 5 3 1 2 6
栈:先进后出
6比5先进,所以5,比6 后出,出的顺序应该是5 6而不是6 5
A.动态结构和静态结构
B.内部结构和外部结构
C.紧凑结构和非紧凑结构
D.线性结构和非线性结构
数据的逻辑结构可以分为线性结构和非线性结构
线性结构(线性表、栈、队列、字符串、数组、广义表)
非线性结构(树、图)
数据的存储结构分为顺序存储和非顺序存储