免费智能真题库 > 历年试卷 > 程序员 > 2021年上半年 程序员 上午试卷 综合知识
  第43题      
  知识点:   二叉树的应用   
  章/节:   常用数据结构       

 
对于n个元素的关键字序列{k1,k2,…Kn},当且仅当满足Ki≤K2i;且Ki≤K2i+1称该序列为小顶。由此可知( )小顶
 
 
  A.  17, 12, 13, 14, 15, 16, 11
 
  B.  11, 15, 13, 17, 16, 14, 12
 
  C.  17, 16, 14, 12, 15, 13, 11
 
  D.  11, 14, 12, 15, 16, 13, 17
 
 
 

  相关试题:常用数据结构          更多>  
 
  第42题    2019年下半年  
   45%
对于n个元素的关键码序列{k1,k2,…,kn},当且仅当满足关系ki≤k2i且k..
  第39题    2021年下半年  
   67%
对有序表进行二分查找(即折半查找)的过程可用折半查找判定树来表示。以5个元素构成的有序表为例,对其进行二分查找的过程可表示为..
  第36题    2022年上半年  
   0%
以下关于单链表存储结构特征的叙述中,不正确的是( )。
   知识点讲解    
   · 二叉树的应用    · 
 
       二叉树的应用
        二叉树运算是数据结构的重要内容,为加深对二叉树内容的理解,这里给出一些应用实例。为方便描述,二叉树的顺序存储结构用一维数组R表示,而二叉链表的节点存储结构定义如下:
        
        (1)以二叉链表为存储结构,写一个算法用括号形式(key, LT, RT)打印二叉树,其中key是根节点数据,LT和RT分别是括号形式的左右子树。并且要求:空树不打印任何信息,一个节点x的树打印形式是x,而不应是(X,)的形式。相应的算法如下:
        
        (2)建立哈夫曼树和哈夫曼编码。
        建立哈夫曼树和哈夫曼编码的代码如下:
        
        (3)将已知二叉树改建为中序线序树。
        将已知二叉树改建为中序线序树算法的主要思路是:对二叉树进行中序遍历,若当前被访问节点的左子节点指针为空,则让它指向当前节点的前驱节点;若其前驱节点的右子节点指针为空,则让它指向当前节点。相应的算法如下:
        
 
       堆
        1)定义
        n个元素的序列{k1, k2, …, kn}当且仅当满足以下的关系式时才称之为堆:,并相应地称为小顶堆或大顶堆。
        2)判断办法
        判断堆的办法是把序列看成一棵完全二叉树,若树中所有非终端节点的值均不大于(或不小于)其左右孩子的节点的值,则该序列为堆。
        3)典型应用
        堆的典型应用是堆排序。堆排序首先要根据待排序记录的关键字建立初始堆,其方法是:将待排序的关键字按层序遍历方式分放到一棵完全二叉树的各个节点中,显然所有i>[n/2]的节点ki都没有子节点,以这样的ki为根的子树已经是堆,因此初始堆可从完全二叉树的第(i=[n/2])个节点开始,通过调整,逐步使以k[n/2], k[n/2]-1, …, k2, k1为根的子树满足堆的定义。
        注意:堆与一棵完全二叉树对应,但堆本身是线性表。
   题号导航      2021年上半年 程序员 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第43题    在手机中做本题