- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目录
TOC \o 1-1 \h \u 6938 线性 2
32381 树形 4
12803 图形结构 8
12625 查找 10
3319 排序 14
线性
单选(2009_408)
2.C
设栈 S 和队列 Q 的初始状态均为空,元素
a,b,c,d,e,f,g 依次进入栈
S。若每个元素出栈后立即进入队列 Q,且 7 个元素出队的顺序是 b,d,c,f,e,a,
g,则栈 S 的容量至少是 。
A.1
B.2
C.3
D.4
填空
解答
阅读算法
编写算法(2019_408)
树形
单选(2019_408)
2. B
若将一棵树 T 转化为对应的二叉树 BT,则下列对 BT 的遍历中,其遍历序列与 T 的后
根遍历序列相同的是
A.先序遍历
B.中序遍历
C.后序遍历
D.按层遍历
3. C (2019_408_)
对 n 个互不相同的符号进行哈夫曼编码。若生成的哈夫曼树共有 115 个结点,则 n 的值
A.56
B.57
C.58
D.60
填空
解答(2016_408)
42.(8分)如果一棵非空k(k≥2)叉树T中每个非叶结点都有k个孩子,则称T为正则后k树。请回答下列问题并给出推导过程。
(1)若T有m个非叶结点,则T中的叶结点有多少个?
(2)若T的高度为h(单结点的树h=1),则T的结点数最多为多少个?最少为多少个?
阅读算法
编写算法(2014_408)
3)算法代码如下:
①基于先序遍历的算法:
int WPL(BiTree root){
return wpl_PreOrder(root, 0);
}
int wpl_PreOrder(BiTree root, int deep){
static int wpl = 0;
//定义一个 static 变量存储 wplif(root-lchild == NULL root-lchild == NULL)
//若为叶子结点,累积 wpl
wpl += deep*root-weight;
if(root-lchild != NULL)
//若左子树不空,对左子树递归遍历
wpl_PreOrder(root-lchild, deep+1);
if(root-rchild != NULL)
//若右子树不空,对右子树递归遍历
wpl_PreOrder(root-rchild, deep+1);
return wpl;
}
②基于层次遍历的算法:
#define MaxSize 100
//设置队列的最大容量
int wpl_LevelOrder(BiTree root){
BiTree q[MaxSize];
//声明队列,end1 为头指针,end2 为尾指针
int end1, end2;
//队列最多容纳 MaxSize-1 个元素
end1 = end2 = 0;
//头指针指向队头元素,尾指针指向队尾的后一个元素
int wpl = 0, deep = 0;
//初始化 wpl 和深度
BiTree lastNode;
//lastNode 用来记录当前层的最后一个结点
BiTree newlastNode;
//newlastNode 用来记录下一层的最后一个结点
lastNode = root;
//lastNode 初始化为根节点
newlastNode = NULL;
//newlastNode 初始化为空
q[end2++] = root;
//根节点入队
while(end1 != end2){
//层次遍历,若队列不空则循环
BiTree t = q[end1++];
//拿出队列中的头一个元素
if(t-lchild == NULL t-lchild == NULL){
wpl += deep*t-weight;
}
//若为叶子结点,统计 wpl
if(t-lchild != NULL){
//若非叶子结点把左结点入队
q[end2++] = t-lchild;
newlastNode = t-lchild;
}
//并设下一层的最后一个结点为该结点的左结点
if(t-rchild != NULL){//处理叶节点
q[end2++] = t-rchild;
newlastNode = t-rchild;
}
if(t == lastNode){
//若该结点为本层最后一个结点,更新 lastNode
lastNode = newlastNode;
deep += 1;
//层数加 1
}
}
return wpl;
//返回 wpl
}
文档评论(0)