SJTU 《算法设计与分析》备考题

621594367878_.pic_hd.jpg

单选题

1、除根结点外,树上每个结点( )。
a. 可有一个孩子、任意多个双亲b. 可有任意多个孩子、一个双亲
c. 只有一个孩子、一个双亲
d. 可有任意多个孩子、任意多个双亲
2、采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为( )。a. (n+1)/2
b. n/2
c. (n-1)/2
d. n
3、采用二分查找方法查找长度为n的线性表时,每个元素的平均查找长度为( )。a. O(log2n)
b. O(n2)
c. O(n)
d. O(nlog2n)
4、设顺序线性表中有n个数据元素,则删除表中第i个元素需向前移动( )个元素。
a. n-1-ib. n-i
c. i
d. n+1-i
5、设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为( )。a. (R-F+M)%M
b. F-R
c. (F-R+M)%M
d. R-F
6、设输入序列是1、2、3、…、n,经过栈的作用后输出序列的第一个元素是n,则输出序列中第i个输出元素是( )。
a. n-1-i
b. 不能确定
c. n-id. n+1-i
7、设输入序列为1、2、3、4、5、6,则通过栈的作用后可以得到的输出序列为( )。
a. 5,3,4,6,1,2
b. 1,5,4,6,2,3
c. 3,1,2,5,4,6d. 3,2,5,6,4,1
8、设用链表作为栈的存储结构,则退栈操作( )。a. 必须判别栈是否为满
b. 必须判别栈是否为空
c. 对栈不作任何判别
d. 必须判别栈元素的类型
9、设用邻接矩阵A表示有向图G的存储结构,则有向图G中顶点i的入度为( )。
a. 第i列0元素的个数之和
b. 第i行0元素的个数之和c. 第i列非0元素的个数之和
d. 第i行非0元素的个数之和
10、设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列( )存储方式最节省运算时间。
a. 双向链表b. 双向循环链表
c. 单向循环链表
d. 单向链表
11、设某棵二叉树的高度为10,则该二叉树上叶子结点最多有( )。
a. 1024
b. 256
c. 20d. 512
12、设某棵二叉树的中序遍历序列为ABCD,先序遍历序列为CABD,则后序遍历该二叉树得到序列为( )。
a. CDABb. BADC
c. CBDA
d. BCDA
13、设某棵二叉树中有2000个结点,则该二叉树的最小高度为( )。
a. 9b. 11
c. 12
d. 10
14、设某棵二叉树中只有度数为0和度数为2的结点,且度数为0的结点数为n,则这棵二叉树中共有( )个结点。
a. n+1
b. 2n
c. 2n+1d. 2n-1
15、设某有向图的邻接表中有n个表头结点和m个表结点,则该图中有( )条有向边。
a. n-1b. m
c. n
d. m-1
16、设某无向图有n个顶点,则该无向图的邻接表中有( )个表头结点。
a. 2n-1b. n
c. n/2
d. 2n
17、设某无向图中有n个顶点e条边,则该无向图中所有顶点的度之和为( )。a. 2e
b. n
c. e
d. 2n
18、设某无向图中有n个顶点e条边,则建立该图邻接表的时间复杂度为( )。
a. O(n\*e)b. O(n+e)
c. O(n2)
d. O(n3)
19、设某数据结构的二元组形式表示为A=(D,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>},则数据结构A是( )。
a. 图结构
b. 物理结构
c. 线性结构d. 树型结构
20、设某强连通图中有n个顶点,则该强连通图中至少有( )条边。
a. n(n-1)b. n
c. n+1
d. n(n+1)
21、设某完全无向图中有n个顶点,则该完全无向图中有( )条边。
a. n
b. n-1
c. n(n-1)d. n(n-1)/2
22、设某哈夫曼树中有199个结点,则该哈夫曼树中有( )个叶子结点。
a. 99
b. 101c. 100
d. 102
23、设某二叉树中度数为0的结点数为N0,度数为1的结点数为N1,度数为2的结点数为N2,则下列等式成立的是( )。
a. N0=N1+N2b. N0=N2+1
c. N0=2N1+1
d. N0=N1+1
24、设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
a. 7
b. 6
c. 8d. 5
25、设无向图G中有n个顶点,则该无向图的最小生成树上有( )条边。
a. 2n-1
b. nc. n-1
d. 2n
26、设按照从上到下、从左到右的顺序从1开始对完全二叉树进行顺序编号,则编号为i结点的左孩子结点的编号为( )。
a. i/2
b. 2i+1c. 2i
d. 2i-1
27、设指针变量top指向当前链式栈的栈顶,则删除栈顶元素的操作为( )。
a. top=top+1;
b. top->next=top;c. top=top->next;
d. top=top-1;
28、设指针变量p指向双向链表中结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X的操作序列为( )。
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. p->next=s; p->next->prior=s; s->prior=p; s->next=p->next;d. s->prior=p;s->next=p->next;p->next->prior=s; p->next=s;
29、设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为( )。
a. q=p->next;q->data=p->data;p->next=q->next;free(q);
b. q=p->next;p->data=q->data;free(q);
c. q=p->next;p->next=q->next;free(q);d. q=p->next;p->data=q->data;p->next=q->next;free(q);
30、设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为( )。
a. front->next=s;front=s;b. rear->next=s;rear=s;
c. s->next=front;front=s;
d. s->next=rear;rear=s;
31、设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B插入结点X的操作序列为( )。
a. p->next=s->next;s->next=p;
b. p->next=s;s->next=q;
c. s->next=p->next;p->next=-s;d. q->next=s; s->next=p;
32、设带有头结点的单循环链表的头指针为head,则其判空条件是( )。a. head->next==head
b. head==NULL
c. head->next==NULL
d. head!= NULL
33、设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有( )个空指针域。
a. 4m
b. 2m-1
c. 2m+1d. 2m
34、设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是( )。
a. 任一结点无左孩子
b. 任一结点无右孩子c. 高度等于其结点数
d. 空或只有一个结点
35、设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为( )。a. O(1)
b. O(n)
c. O(n2)
d. O(nlog2n)
36、设一组权值集合W={2,3,4,5,6},则由该权值集合构造的哈夫曼树中带权路径长度之和为( )。
a. 40b. 45
c. 30
d. 20
37、设一棵完全二叉树中有65个结点,则该完全二叉树的深度为( )。a. 7
b. 6
c. 5
d. 8
38、设一条单链表的头指针为head,且该链表没有头结点,则其判空条件是( )。a. head==NULL
b. head->next==head
c. head->next==NULL
d. head!=NULL
39、设F是由T1、T2和T3三棵树组成的森林,与F对应的二叉树为B,T1、T2和T3的结点数分别为N1、N2和N3,则二叉树B的根结点的左子树的结点数为( )。
a. N2+N3b. N1-1
c. N1+N3
d. N2-1
40、若采用邻接表存储结构,则图的深度优先搜索类似于二叉树的(  )a. 层次遍历
b. 先根遍历
c. 中根遍历
d. 后根遍历
41、若采用邻接表存储结构,则图的广度优先搜索类似于二叉树的(  )a. 先根遍历
b. 后根遍历
c. 层次遍历
d. 中根遍历
42、若线性表最常用的操作是存取第i个元素及其前驱的值,则采用( )存储方式最节省时间。a. 双向链表
b. 顺序表
c. 单链表
d. 单循环链表
43、若一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的第一趟结果为( )。a. 40,38,46,56,79,84
b. 40,38,46,84,56,79
c. 38,40,46,56,79,84
d. 40,38,46,79,56,84
44、若一个图的边集为 {(A,B),(A,C),(B,D),(C,F),(D,E),(D,F)} ,则从顶点 A 开始对该图进行深度优先搜索,得到的顶点序列可能为( )。
a. A,B,C,F,D,Eb. A,C,F,D,E,B
c. A,B,D,F,E,C
d. A,B,D,C,F,E
45、若一个图的边集为 {(A,B),(A,C),(B,D),(C,F),(D,E),(D,F)} ,则从顶点 A 开始对该图进行广度优先搜索,得到的顶点序列可能为( )。
a. A,B,C,F,D,E
b. A,B,C,D,E,F
c. A,B,D,C,E,Fd. A,C,B,F,D,E
46、线性表若采用链式存储结构时,要求内存中可用存储单元的地址( )。a. 连续或不连续都可以
b. 必须是连续的
c. 部分地址必须是连续的
d. 一定是不连续的
47、用链接方式存储的队列,在进行插入运算时( )。a. 仅修改尾指针
b. 头、尾指针都要修改
c. 仅修改头指针
d. 头、尾指针都不要修改
48、用邻接表存储图所用的空间大小( )。
a. 只与图的边数有关b. 与图的顶点数和边数都有关
c. 只与图的顶点数有关
d. 与边数的平方有关
49、树的后根遍历序列等同于该树对应的二叉树的( )。
a. 先序序列b. 中序序列
c. 后序序列
d. 层次序列
50、树型结构最适合用来表示( )。
a. 无序数据元素
b. 有序数据元素
c. 元素之间无联系的数据d. 元素之间具有分支层次关系的数据
51、栈。和队列的共同点是( )。a. 只允许在端点处插入和删除元素
b. 都是先进后出
c. 都是先进先出
d. 没有共同点
52、数据结构是研究数据的( )以及它们之间的相互关系。
a. 理想结构,抽象结构b. 物理结构,逻辑结构
c. 理想结构,物理结构
d. 抽象结构,逻辑结构
53、数据的最小单位是( )。
a. 数据元素b. 数据项
c. 数据类型
d. 数据变量
54、已知一个有向图的边集为 {<a,b>,<a,c>,<a,d>,<b,d>,<b,e>,<d,e>} ,则由该图产生的一种可能的拓扑序列为( )。a. a,b,c,d,e
b. a,c,b,e,d
c. a,b,d,e,b
d. a,c,d,b,e
55、对线性表进行二分查找时,要求线性表必须( )。
a. 以链接方式存储
b. 以链接方式存储,且结点按关键字有序排序c. 以顺序方式存储,且结点按关键字有序排序
d. 以顺序方式存储
56、在长度为n的顺序存储的线性表中插入第i个元素(1≤i≤n)需向后移动( )个元素。
a. n-i
b. i
c. n-1-id. n-i+1
57、在用邻接表表示图时,对图进行深度优先搜索遍历的算法的时间复杂度为( )。
a. O(n2)b. O(n+e)
c. O(n3)
d. O(n)
58、在有向图的邻接表存储结构中,顶点v在链表中出现的次数是( )。
a. 顶点v的度
b. 依附于顶点v的边数c. 顶点v的入度
d. 顶点v的出度
59、在有向图G的拓扑序列中,若顶点Vi在顶点Vj之前,则下列情形不可能出现的是( )。
a. G中有一条从Vi到Vj的路径
b. G中有弧
c. G中没有弧d. G中有一条从Vj到Vi的路径
60、在下列存储形式中,哪一个不是树的存储形式?( )
a. 孩子链表表示法b. 顺序存储表示法
c. 孩子兄弟表示法
d. 双亲表示法
61、在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行( )。a. q->next = s;s->next = p;
b. s->next = p->next;p->next = s;
c. p->next = s->next;s->next = p;
d. p->next = s;s->next = q;
62、在一个具有n个顶点的无向图中,每个顶点度的最大值为( )a. n-1
b. n+1
c. n
d. 2(n-1)
63、图的BFS生成树的树高比DFS生成树的树高( )。
a. 大或相等
b. 小c. 小或相等
d. 大
64、含有n个结点的二叉树采用二叉链表存储时,空指针域的个数为( )。
a. nb. n+1
c. n+2
d. n-1
65、关于无向图的邻接矩阵的说法中正确的是( )。
a. 矩阵中的非零元素个数等于图的边数
b. 矩阵中非全零元素的行数等于图中的顶点数c. 第i行上非零元素个数和第i列上非零元素个数一定相等
d. 第i行上与第i列上非零元素总和等于顶点Vi的度数
66、二叉树的第k层的结点数最多为( )。
a. 2kb. 2k -1
c.2k
d. 2k-1
67、二叉排序树按( )遍历可以得到一个从小到大的有序序列。
a. 后序b. 中序
c. 层次
d. 先序
68、下面程序的时间复杂为( )。
for(i=1, s=0; i<=n; i++)
{ t=1;
for(j=1; j<=i; j++)
t=t*j; s=s+t;
}
a. O(n3)
b. O(n)c. O(n2)
d. O(n4)
69、下面程序段的时间复杂度为( )。
s=i=0;
do { i=i+1; s=s+i;
} while(i<=n);a. O(n)
b. O(nlog2n)
c. O(n2)
d. O(1)
70、下面关于线性表的叙述错误的是( )。
a. 线性表采用链式存储不必占用一片连续的存储空间
b. 线性表采用顺序存储必须占用一片连续的存储空间c. 线性表采用顺序存储便于插入和删除操作的实现
d. 线性表采用链式存储便于插入和删除操作的实现
71、下述编码中哪一个不是前缀编码( )。
a. 0,10,110,111
b. 00,01,10,11
c. 1,01,000,001d. 0,1,00,11
72、下列说法不正确的是( )。a. 图的深度遍历不适用于有向图
b. 图的深度遍历是一个递归过程
c. 遍历的基本方法有两种:深度遍历和广度遍历
d. 图的遍历是从给定的源点出发每个顶点仅被访问一次
73、下列有关图遍历的说法中不正确的是(  )。a. 非连通图不能用深度优先搜索法
b. 连通图的深度优先搜索是一个递归过程
c. 图的遍历要求每一顶点仅被访问一次
d. 图的广度优先搜索中邻接点的寻找具有“先进先出”的特征
74、下列哪种图的邻接矩阵为对称矩阵? ( )
a. 带权有向图
b. 有向图c. 无向图
d. 有向图或无向图
75、一个带权的无向连通图的最小生成树(  )。
a. 只有一棵
b. 一定有多棵c. 有一棵或多棵
d. 可能不存在
76、顺序表是线性表的()
a. 链式存储结构b. 顺序存储结构
c. 索引存储结构
d. 散列存储结构
77、线性表若采用链式存储结构时,要求内存中可用存储单元的地址()
a. 必须是连续的
b. 部分地址必须是连续的
c. 一定是不连续的d. 连续或不连续都可以
78、一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是()
a. e,d,c,b,a
b. d,e,c,b,ac. d,c,e,a,b
d. a,b,c,d,e
79、在下列链表中,不能从任一结点出发访问到表中的所有结点的是()a. 单链表
b. 单向循环链表
c. 双向循环链表
d. 循环链表
80、二叉树结点度的集合为()。
a. (1)b. (0,1,2)
c. (1,2)
d. (0)
81、以二分查找方法查找一个线性表时,此线性表必须是()。a. 顺序存储的有序表
b. 链式存储的有序表
c. 链表
d. 顺序表
82、设哈夫曼树的叶子结点的个数为n,那么该树的结点总数为()
a.2n
b.2n+1c.2n-1
c.不能唯一确定
83、对二叉树来说,第i层上至多有()个结点。
a. 2i
b. 2i-1c. 2i-1
d. 2i-1-1
84、数据结构包括3个方面的内容,它们是()。
a. 数据、数据元素、数据项
b. 数据元素、数据处理、算法实现
c. 数据元素、数据的逻辑结构、数据的存储结构d. 数据的逻辑结构、数据的存储结构、数据的操作
85、数据在计算机存储器内表示时,存储结点连续存放且存储顺序与逻辑顺序相同,这种存储方式称为()。
a. 索引存储方式b. 顺序存储方式
c. 链式存储方式
d. 散列存储方式
86、冒泡排序属于()。
a. 插入排序
b. 选择排序
c. 快速排序d. 交换排序
87、下列程序段的时间复杂度为()。
i=1;j=0;
while(i+j<=n)
{if(i>j)j++;
elsei++;
}a. O(n)
b. O(nlog2n)
c. O(i*j)
d. O(i+j)
88、下面程序的时间复杂为()。
for(i=1,s=0;i<=n;i++)
{t=1;for(j=1;j<=i;j++)t=t*j;s=s+t;}
a. O(n)b. O(n2)
c. O(n3)
d. O(n4)
89、含有n个结点的二叉树采用二叉链表存储时,空指针域的个数为()。
a. n-1
b. nc. n+1
d. n+2
90、设某完全无向图中有n个顶点,则该完全无向图中有()条边。a. n(n-1)/2
b. n(n-1)
c. n
d. n-1

判断题

1、调用一次深度优先遍历可以访问到图中的所有顶点。(F)
2、分块查找的平均查找长度不仅与索引表的长度有关,而且与块的长度有关。(T)
3、冒泡排序在初始关键字序列为逆序的情况下执行的交换次数最多。(T)
4、满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。(T)
5、设一棵二叉树的先序序列和后序序列,则能够唯一确定出该二叉树的形状。(F)
6、线性表的顺序存储结构比链式存储结构更好。(F)
7、不论是入队列操作还是入栈操作,在顺序存储结构上都需要考虑“溢出”情况。(T)
8、完全二叉树中的叶子结点只可能在最后两层中出现。(T)
9、由树转化成二叉树,该二叉树的右子树不一定为空。(F)
10、线性表中的所有元素都有一个前驱元素和后继元素。(F)

填空题

1、head指向单链表的表头,p指向单链表的表尾结点,则执行p->next=head后,该单链表构成循环链表
2、在单链表中,若p和s是两个指针,且满足p->next与s相同,则语句p->next=s->next的作用是删除s指向的结点。
3、在一个长度为n的顺序表中的第i(1≤i≤n+1)个元素之前插入一个元素时,需向后移动的元素个数为n-i+1
4、设顺序线性表中有n个数据元素,则删除表中第i个元素需向前移动n-i个元素。
5、衡量一个算法,除了正确性之外,主要考虑的两个方面是时间复杂度空间复杂度
6、在一个具有n个顶点的无向完全图中,包含n(n-1)/2条边。
7、对于一个具有n个顶点的图,若采用邻接矩阵表示,则矩阵大小为n^2
8、采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为(n+1)/2
9、树型结构最适合用来表示元素之间具有分支层次关系的数据。

简答题

1、已知一棵二叉树的先(前)序遍历序列为ABDEGCFH,中序遍历序列为DBGEACFH,请画出该二叉树,并写出该二叉树的后序序列。

2020-07-10_5f0802a1c7022.png

后序遍历序列为:DGEBHFCA

2、画出一棵二叉树,使其:中序序列为DCBGEAHFIJK,后序序列:DCEGBFHKJIA

2020-07-10_5f0803da172a1.png

3、请写出对(53, 87, 12, 61,98,17, 97, 75, 53, 26)进行一次划分的过程。

快速排序一趟结果如下:(26,17,12,53,98,61,97,75,53,87)

4、有一结点序列为(7,19,2,6,32,3,21,10),要求以该序列作为带权二叉树中结点的权值,构造并画出一棵哈夫曼树,并计算其带权路径长度。

2020-07-10_5f080f4b9ee74.png

WPL=(2+3) 5+(6+7+10)4+(19+21+32)*2
=25+92+144
=261

5、对下面所示的无向网,要求构造出一棵最小生成树(中间过程可以省略),并计算该最小生成树的权。

2020-07-10_5f080fafde3c5.png
2020-07-10_5f081041348c5.png

最小生成树的权=4+3+5+4+5+2+3
=26

6、下面所示为有向图的邻接表,试画出该有向图,并给出由顶点V1开始的深度优先遍历和广度优先遍历的结果。

2020-07-10_5f0810795f1c0.png
2020-07-10_5f0810a6b9410.png

深度优先搜索序列:V1, V2, V3, V6, V5, V4
广度优先搜索序列:V1, V2, V5, V4, V3, V6

7、有一结点序列为(45,24,53,12,28,90),要求构造并画出一棵二叉排序树,并输出以中序方式遍历该树的序列。

2020-07-10_5f081a7f0557c.png

中序遍历得到从小到大的有序序列:
12,24,28,45,53,90

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 一棵二叉树的顺序存储情况如下: 树中,度为2的结点为( )。 A.1 B.2 C.3 D.4 2. 一棵“完全二叉树”结点为25,高度为( )。 A.4 B.5 C.6 D.不确定 3.下列说法中,( )是正确的。 A. 二叉树就是度为2的树 B. 二叉树中不存在度大于2的结点 C. 二叉树是有序树 D. 二叉树中每个结点的度均为2 4.一棵二叉树的前序遍历序列为ABCDEFG,它的中序遍历序列可能是( )。 A. CABDEFG B. BCDAEFG C. DACEFBG D. ADBCFEG 5.线索二叉树中的线索指的是( )。 A.左孩子 B.遍历 C.指针 D.标志 6. 建立线索二叉树的目的是( )。 A. 方便查找某结点的前驱或后继 B. 方便二叉树的插入与删除 C. 方便查找某结点的双亲 D. 使二叉树的遍历结果唯一 7. 有abc三个结点的右单枝二叉树的顺序存储结构应该用( )示意。 A. a b c B. a b ^ c C. a b ^ ^ c D. a ^ b ^ ^ ^ c 8. 一颗有2046个结点的完全二叉树的第10层上共有( )个结点。 A. 511 B. 512 C. 1023 D. 1024 9. 一棵完全二叉树一定是一棵( )。 A. 平衡二叉树 B. 二叉排序树 C. 堆 D. 哈夫曼树 10.某二叉树的中序遍历序列和后序遍历序列正好相反,则该二叉树一定是( )的二叉树。 A.空或只有一个结点 B.高度等于其结点 C.任一结点无左孩子 D.任一结点无右孩子 11.一棵二叉树的顺序存储情况如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A B C D E 0 F 0 0 G H 0 0 0 X 结点D的左孩子结点为( )。 A.E B.C C.F D.没有 12.一棵“完全二叉树”结点为25,高度为( )。 A.4 B.5 C.6 D.不确定 二、填空(每空3分,共18分)。 1. 树的路径长度:是从树根到每个结点的路径长度之和。对结点相同的树来说,路径长度最短的是 完全 二叉树。 2. 在有n个叶子结点的哈夫曼树中,总结点是 2n-1 。 3. 在有n个结点的二叉链表中,值为非空的链域的个为 n-1 。 4. 某二叉树的中序遍历序列和后序遍历序列正好相反,则该二叉树一定是 任一结点无左孩子二叉树。 5. 深度为 k 的二叉树最多有 个结点,最少有 k 个结点。 三、综合(共58分)。 1. 假定字符集{a,b,c,d,e,f }中的字符在电码中出现的次如下: 字符 a b c d e f 频度 9 12 20 23 15 5 构造一棵哈夫曼树(6分),给出每个字符的哈夫曼编码(4分),并计算哈夫曼树的加权路径长度WPL(2分)。 (符合WPL最小的均为哈夫曼树,答案不唯一) 哈夫曼编码: 2. 假设用于通信的电文由字符集{a,b,c,d,e,f,g}中的字符构成,它们在电文中出现的频率分别为{0.31,0.16,0.10,0.08,0.11,0.20,0.04}。要求: (1)为这7个字符设计哈夫曼树(6分)。 (2)据此哈夫曼树设计哈夫曼编码(4分)。 (3)假设电文的长度为100字符,使用哈夫曼编码比使用3位二进制等长编码使电文总长压缩多少?(4分) (1) 为这7个字符设计哈夫曼树为(符合WPL最小的均为哈夫曼树,答案不唯一): (2) 哈夫曼编码为: a:01;b:001;c:100;d:0001;e:101;f:11;g:0000 (3) 假设电文的长度为100字符,使用哈夫曼编码比使用3位二进制等长编码使电文总长压缩多少? 采用等长码,100个字符需要300位二进制,采用哈夫曼编码发送这100个字符需要261二进制位,压缩了300-261=39个字符。压缩比为39/300=13%。 3. 二叉T的(双亲孩子的)边集为: { <A,B>, <A,C>, <D,A>, <D,E>, <E,F>, <F,G> } 请回答下列问: (1)T的根结点(2分): (2)T的叶结点(2分): (3)T的深度(2分): (4)如果上述列出边集中,某个结点只有一个孩子时,均为其左孩子;某个结点有两个孩子时,则先列出了连接左孩子的边后列出了连接右孩子的边。画出该二叉树其及前序线索(6分)。 (1)T的根结点 (2)T的叶结点 : (3)T的深度 : (4)该二叉树其及前序线索为: 4.现有以下按前序和中序遍历二叉树的结果: 前序:ABCEDFGHI 中序:CEBGFHDAI 画出该二叉树的逻辑结构图(5分),并在图中加入中序线索(5分)。 5.有电文:ABCDBCDCBDDBACBCCFCDBBBEBB。 用Huffman树构造电文中每一字符的最优通讯编码。画出构造的哈夫曼树,并给出每个字符的哈夫曼编码方案。(符合WPL最小的均为哈夫曼树,答案不唯一) (1)构造哈夫曼树(6分): (2)哈夫曼编码方案(4分):

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值