第六章 树 习题及答案

第六章 树        习题及答案
第六章 树        习题及答案

第六章树习题及答案

一、基础知识题

6.1.假设在树中,结点x是结点y的双亲时,用(x,y)来表示树边.已知一棵树边的集合为{(i,m),(i,n),(e,i),(b,e),(b,d),(a,b),(g,j),(g,k),(c,g),(c,f),(h,l),(c,h),(a,c)}用树形表示法出此树,并回答下列问题:

(1)哪个是根结点? (2)哪些是叶结点? (3)哪个是g的双亲? (4)哪些是g的祖先?

(5)哪些是g的孩子? (6)哪些是e的子孙? (7)哪些是e的兄弟?哪些是f的兄弟?

(8)结点b和n的层次各是多少? (9)树的深度是多少? (10)以结点c为根的子树的深度是多少?

(11) 树的度数是多少?

6.2 一棵度为2的有序树与一棵二叉树有何区别?

6.3 试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。

6.4 已知一棵度为m的树中有n1个度为1的结点,n2个度为2的结点,...nm个度为m的结点,问该树中有多少片叶子?

6.5一个深度为h的满k叉树有如下性质:第h层上的结点都是叶子结点,其余各层上每个结点都有k棵非空子树。如果按层次顺序(同层自左至右)从1开始对全部结点编号,问:

(1)各层的结点数目是多少?

(2)编号为i的结点的双亲结点(若存在)的编号是多少?

(3)编号为i的结点的第j个孩子结点(若存在)的编号是多少?

(4)编号为i的结点的有右兄弟的条件是什么? 其右兄弟的编号是多少?

6.6高度为h的完全二叉树至少有多少个结点?至多有多少个结点?

6.7 在具有n个结点的k叉树(k>=2)的k叉链表表示中,有多少个空指针?

6.8 假设二叉树包含的结点数据为1,3,7,12。

(1)画出两棵高度最大的二叉树;

(2)画出两棵完全二叉树,要求每个双亲结点的值大于其孩子结点的值。

6.9试找出分别满足下面条件的所有二叉树:

(1)前序序列和中序序列相同;(2)中序序列和后序序列相同;

(3)前序序列和后序序列相同;(4)前序、中序、后序序列均相同。

6.10 试采用顺序存储方法和链接存储方法分别画也6.30所示各二叉树的存储结构。

6.11 分别写出图6.30(下图)所示各二叉树的前序、中序和后序序列。

6.12 若二叉树中各结点的值均不相同,则由二叉树的前序序列和中序序列,或由其后序序列和中序序列均能唯一地确定一棵二叉树,但由前序序列和后序序列却不一定能唯一地确定一棵二叉树。

(1)已知一棵二叉树的前序序列和中序序列分别为ABDGHCEFI和GDHBAECIF,请画出此二叉树。

(1)已知一棵二叉树的在序序列和后序序列分别为BDCEAFHG和DECBHGFA,请画出此二叉树。

(1)已知一棵二叉树的前序序列和后序序列分别为AB和BA,请画出这两棵不同的二叉树。

6.13 对二叉树中的结点进行按层次顺序(每一层自左至右)的访问操作称为二叉树的层次遍历,遍历所得到的结点序列称为二叉树层次序列。现已知一棵二叉树的层次序列为ABCDEFGHIJ,中序序列为DBGEHJACIF,请画出此二叉树。

6.14试画出图6.30(下图)所示各二叉树的前序、中序和后序线索树及相应的线索链表。

6.15 在何种线索树中,线索对求指定结点在相应次序下的前趋和后继并无帮助?

6.16 对图6.31所示的森林:

(1)求各树的前序序列和后序序列;

(2)求森林的前序序列和后序序列;

(3)将此森林转换为相应的二叉树;

(4)给出(a)所示树的以亲链表表示、孩子链表表示、双亲孩子链表表示及孩子兄弟链表示等四种存储结构,并指出哪些存储结构易于求指定结点的祖先,哪些易于求指定结点的后代?

6.17 画出图6.32(下图)所示的各二叉树所对就的森林。

6.18高度为h的严格二叉树至少有多少个结点?至多有多少个结点?

6.19 在什么样的情况下,等长编码是最优的前缀码?

6.20 下述编码哪一组不是前缀码?

{00,01,10,11},{0,1,00,11},{0,10,110,111}

6.21 假设用于通信的电文由字符集{a,b,c,d,e,f,g,h}中的字母构成,这8个字母在电文中出现的概率分别为{0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10}.

(1)为这8个字母设计哈夫曼编码。

(2)若用这三位二进制数(0…7)对这8个字母进行等长编码,则哈夫曼编码的平均码长是等长编码的百分之几?它使电文总长平均压缩多少?

答案:

6.1: 图见网页动画。

答:(这是测试我们对树的基本概念的掌握情况.)

a是根结点;

mndfjkl是叶结点;

c是g的双亲;

c,a是g的祖先;

j,k是g的孩子;

imn是e的子孙;

d是e的兄弟;g,h是f的兄弟;

b的层次是2;n的层次是5;

树的深度是5;

以c为根的子树深度是3;

树的度数是3;

6.2 答:一棵度为二的有序树与一棵二叉树的区别在于,有序树的结点次序是相对于另一结点而言的,如果有序树中的子树只有一个孩子时,这个孩子结点就无须区分其左右次序,而二叉树无论其孩子数是否为2,均需确定其左右次序,也就是说二叉树的结点次序不是相对于另一结点而言而是确定的。

6.3 答:三个结点的树如下:只有两种形态

○A ○A

/ \ |

○○○

|

三个结点的二叉树如下所示:有五种形态:

(1) (2) (3) (4) (5)

○A ○A ○A ○A ○A

/ \ / / \ \

○○○○○○

/ \ / \

○○○○

6.4 解:叶子数为:n0=1+0*n1+1*n2+2*n3+...(m-1)*nm

评:我们想象这棵树是从一个根开始长起来的:当一棵树仅为根时,它的叶子数为1,每"长出"一个度为1的结点都不会增加叶子数,因此第二项为0,每长出一个度为2的结点时(无论是从哪一个结点长出)可以增加1片叶子,依此类推,每长出一个度为m的结点,可以增加(m-1)片叶子,把所有的叶子加起来就成了。

6.5 解:

(1) 设层号为l的结点数目为m=k^(l-1)

(2) 编号为i的结点的双亲结点的编号是::|_(i+k-2)/k_|(不大于(i+k-2)/k的最大整数。也就是(i+k-2)与k整除的结果.以下/表示整除。

(3) 编号为i的结点的第j个孩子结点编号是:k*(i-1)+1+j;

(4) 编号为i的结点有右兄弟的条件是(i+1)/k==(i+2)/k (整除) 并且i!=1

右兄弟的编号是i+1.

6.6 解:高度为h的完全二叉树至少有2^(h-1)个结点,至多有2^h-1个结点(也就是满二叉树)。

6.7 解:空指针的个数为:n(k-1)+1;

6.8 解:(1)高度最大的两棵二叉树如图:

○1 ○1

/ \

○3 ○3

/ \

○7 ○7

/ \

○2 ○2

/ \

○12 ○12

(2)两棵完全二叉树如下:

○12 ○12

/ \ / \

○7 ○3 ○7 ○3

/ \ / \

○1 ○2 ○2 ○1

6.9 答:空树满足所有条件。非空树如下:

(1) 前序序列和中序序列相同的二叉树是:没有左子树的二叉树(右单支树)。

(2) 中序序列和后序序列相同的二叉树是:没有右子树的二叉树(左单支树)。

(3) 前序序列和后序序列相同的二叉树是:只有根的二叉树。

(4) 前序、中序、后序序列均相同的二叉树:只有根结点的二叉树。

6.10

评:此题测试我们对完全二叉树的掌握情况和两种存储方法的运用。

解:

顺序存储方法:

二叉树(a):

下标0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

_____________________________________________________________

bt |5|1|2|∮|∮|3|∮|∮|∮|∮|4|∮|∮|∮|∮|∮|∮|∮|∮|∮|∮|5|

-------------------------------------------------------------

二叉树(b):

下标0 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

_______________________________________________________________________________ ___

bt| 5|1 |∮|2 |∮|∮|3 |∮|∮|∮|∮|∮|∮|4 |∮|∮|∮|∮|∮|∮|∮|∮|∮|∮|∮|∮|5 |

----------------------------------------------------------------------------------

二叉树(c):

下标0 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

_______________________________________________________________________________ bt |7 |1 |∮|2 |∮|∮|3 |4 |∮|∮|∮|∮|5 |6 |∮|∮|∮|∮|∮|∮|∮|∮|∮|∮|7 |8 |

-------------------------------------------------------------------------------

二叉树(d):

下标0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

___________________________________________________

bt|8 |1 |2 |3 |4 |∮|5 |6 |∮|7 |∮|∮|∮|∮|8 |9 |

--------------------------------------------------

链式存储结构:

----------------------------------------------------------------

二叉树(a):

↓root

┌─┬─┬─┐

││1 │∧│

└─┴─┴─┘

┌─┬─┬─┐

│∧│2 ││

└─┴─┴─┘

┌─┬─┬─┐

││3 │∧│

└─┴─┴─┘

┌─┬─┬─┐

│∧│4 ││

└─┴─┴─┘

┌─┬─┬─┐

│∧│5 │∧│

└─┴─┴─┘

--------------------------------------------------------------- 二叉树(b):L

↓root

┌─┬─┬─┐

│∧│1 ││

└─┴─┴─┘

┌─┬─┬─┐

││2 │∧│

└─┴─┴─┘

┌─┬─┬─┐

│∧│3 ││

└─┴─┴─┘

┌─┬─┬─┐

││4 │∧│

└─┴─┴─┘

┌─┬─┬─┐

│∧│5 │∧│

└─┴─┴─┘

二叉树(c):------------------------------------------------------------------------

↓root

┌─┬─┬─┐

│∧│1 ││

└─┴─┴─┘

┌─┬─┬─┐

││2 ││

└─┴─┴─┘

↓↓

┌─┬─┬─┐┌─┬─┬─┐

││3 │││∧│4 │∧│

└─┴─┴─┘└─┴─┴─┘

↓↓

┌─┬─┬─┐┌─┬─┬─┐

││5 │││∧│6 │∧│

└─┴─┴─┘└─┴─┴─┘

↓↓

┌─┬─┬─┐┌─┬─┬─┐

│∧│7 │∧││∧│8 │∧│

└─┴─┴─┘└─┴─┴─┘

二叉树(d):-----------------------------------------------

↓root

┌─┬─┬─┐

││1 ││

└─┴─┴─┘

↓↓

┌─┬─┬─┐┌─┬─┬─┐

││2 │∧│││3 ││

└─┴─┴─┘└─┴─┴─┘

↓↓↓

┌─┬─┬─┐┌─┬─┬─┐┌─┬─┬─┐

│∧│4 │││∧│5 │∧│││6 ││

└─┴─┴─┘└─┴─┴─┘└─┴─┴─┘

↓↓↓

┌─┬─┬─┐┌─┬─┬─┐┌─┬─┬─┐

│∧│7 │∧││∧│8 │∧││∧│9 │∧│

└─┴─┴─┘└─┴─┴─┘└─┴─┴─┘

6.11 解:

(a)前序序列:12345 中序序列:24531 后序序列:54321

(b)前序序列:12345 中序序列:13542 后序序列:54321

(c)前序序列:12357864 中序序列:17583624 后序序列:78563421

(d)前序序列:124735689 中序序列:472153869 后序序列:742589631

6.12 解:

(1)已知二叉树的前序序列为ABDGHCEFI和中序序列GDHBAECIF,则可以根据前序序列找到根结点为A,由此,通过中序序列可知它的两棵子树包分别含有GDHB和ECIF结点,又由前序序列可知B和C分别为两棵子树的根结点...以此类推可画出所有结点:

○A

/ \

○B ○C

/ / \

○D ○E○F

/ \ /

○G ○H ○I

(2)以同样的方法可画出该二叉树:

○A

/ \

○B ○F

\ \

○C ○G

/ \ /

D○E○○H

(3)这两棵不同的二叉树为:

○A ○A

/ \

○B ○B

6.13 解:类似于上一题的分析方法,可画出二叉树的所有结点:

○A

/ \

○B ○C

/ \ \

○D ○E ○F

/ \ /

G○H○○I

\

○J

6.15:答:分别在前序线索二叉树和后序线索二叉树中查找前趋和后继时,线索无帮助作用。

6.16:解:

(1) (a)的前序序列:ABCDEF 后序序列:BDEFCA

(b)的前序序列:GHIJK 后序序列:IJKHG

(c)的前序序列:LMPQRNO后序序列:QRPMNOL

(2) 此森林的前序序列:ABCDEFGHIJKLMPQRNO

此森林的后序序列:BDEFCAIJKHGQRPMNOL

(3)此森林转化为二叉树的过程见动画:

6.17:解:各二叉树所对应森林如下:

-----------------------------

(a) ○A

-----------------------------

(b) ○A

○B

○C

-----------------------------

(c) ○A ○B ○C

-----------------------------

(d) ○A ○C

/

○B

-----------------------------------------------

(e) ○A ○C ○F ○I

/ \ /

○B ○E ○L

/ | \

○D○H○K

/ |

○G ○J

6.18 答:所谓严格二叉树是指该树中没有度数为1的分支结点的二叉树。

所以:高度为h的的严格二叉树至少有2h-1个结点;至多有2^h-1个结点(即满二叉树)。6.19答,在每个字符的使用概率相同的情况下,也即在哈夫曼树中每片叶子的权重相等的时

候,等长编码是最优的前缀码。

6.20 答:第二组不是前缀码。因为0,1分别是00和11的前缀。(前缀码是指该编码集中的任一编码不是其他编码的前缀)

注意:哈夫曼编码不一定是相同的,这和具体的算法有关,或者说是你画的树有关.但有一条原则,每次合并的均是当前最小的两个值,合并后要重新排序。最后你可以选左枝或右枝为0来编码。任一个具体的哈夫曼算法都会得到平均码长最短且相等编码集(虽然具体编码可能不同)。

6.21 解:哈夫曼编码图见题图

根据上图可得编码表:

a:0010

b:10

c:00000

d:0001

e:01

f:00001

g:11

h:0011

(2)用三位二进行数进行的等长编码平均长度为3,而根据哈夫曼树编码的平均码长为:4*0.07+2*0.19+5*0.02+4*0.06+2*0.32+5*0.03+2*0.21+4*0.10=2.61

2.61/3=0.87=87%

其平均码长是等长码的87%。

所以平均压缩率为13%。

*6.22 解:这个函数如下:

void PrintNode(BinTree T)

{

printf("%c",T->data);

}

为了验证这个函数是否正确,要先建立一棵二叉树,然后调用这个中序遍历算法

------------------------------------------------------

//定义二叉树链式存储结构

typedef char DataType;//定义DataType类型

typedef struct node{

DataType data;

struct node *lchild, *rchild;//左右孩子子树

}BinTNode; //结点类型

typedef BinTNode *BinTree ;//二叉树类型

#include

#include

void CreatBinTree(BinTree *T)//输入序列是先序序列

{ //构造二叉链表。T是指向根的指针,故修改了*T就修改了实参

char ch;

if ((ch=getchar())==' ')

*T=NULL;

else{ //读入非空格

*T=(BinTNode *)malloc(sizeof(BinTNode));//生成结点

(*T)->data=ch;

CreatBinTree(&(*T)->lchild); //构造左子树

CreatBinTree(&(*T)->rchild); //构造右子树

}

}

//--------------------------------

void PrintNode(DataType x)

{ //题目要求的打印函数

printf("%c",x);

}

//--------------------------------

void Inorder(BinTree T,void(* Visit)(DataType x))

{

if(T)

{

Inorder(T->lchild,Visit);//遍历左子树

Visit(T->data); //通过函数指针调用它所指的函数访问结点

Inorder(T->rchild,Visit);//遍历右子树

}

}

void main()

{ //现在开始测试啦

BinTree root; //定义一个根结点

CreatBinTree(&root); //建立二叉链表

printf("\n");

Inorder(root,PrintNode);//调用函数,注意传递的是函数名(它就是地址)

printf("\n");

}

//运行时请输入"ab c "(注意b后和c后面各两个空格)再回车,可生成一个以a为根的两片叶子的二叉树,看看打印的结果对不对?

6.23 解:利用中序遍历,我们很容易地就能找到这个算法每访问一次非空结点就给变量nodes加上1; 每访问到一个其左右子树皆空的结点就给变量leaves加上1,最后就得到结果

了:

完整程序如下所示:

//定义二叉树链式存储结构等内容,为方便起见我们将这一段内容存为bintree.h文件,以后只在程序中加入这个头文件就是了。

//------------bintree.h 文件开始--------------

typedef char DataType;//定义DataType类型

typedef struct node{

DataType data;

struct node *lchild, *rchild;//左右孩子子树

}BinTNode; //结点类型

typedef BinTNode *BinTree ;//二叉树类型

#include

#include

void CreatBinTree(BinTree *T)

{ //构造二叉链表,注意:输入序列是先序序列

char ch;

if ((ch=getchar())==' ')

*T=NULL;

else{ //读入非空格

*T=(BinTNode *)malloc(sizeof(BinTNode));//生成结点

(*T)->data=ch;

CreatBinTree(&(*T)->lchild); //构造左子树

CreatBinTree(&(*T)->rchild); //构造右子树

}

}//------------------文件结束---------------------

//------------以下两个函数为题目要求算法------------

int Node(BinTree T)

{ //算结点数

int static nodes=0;//静态变量保留每次递归调用后的值

if(T)

{ //使用中序遍历

Node(T->lchild); //遍历左子树

nodes++; //结点数加1

Node(T->rchild); //遍历右子树

}

return nodes;

}

int Leaf(BinTree T)

{ //算叶子数

int static leaves=0;//静态变量保证其值不会随递归调用而消失

if(T)

{ //使用中序遍历

Leaf(T->lchild); //遍历左子树

if(!(T->lchild||T->rchild))//左右孩子均为空

leaves++; //叶子数加1

Leaf(T->rchild); //遍历右子树

}

return leaves;

}//算法结束---------------------------------

#include

void main()

{ //测试程序

BinTree root;

CreatBinTree(&root);

int nodes=Node(root);

int leaves=Leaf(root);

printf("\nnodes=%d leaves=%d",nodes,leaves);

}

6.24 解:

#include

#include "bintree.h"

#include "math.h"

#define M 10 //假设二叉树最多的层数

#define MAXNODE 50 //假设二叉树最多的结点数

int Height(BinTree T)//求树的深度

{ //求深度算法由阮允准提供,深表感谢。

int lhigh,rhigh,high=0;

if(T!=NULL)

{

lhigh=Height(T->lchild);//左子树高度

rhigh=Height(T->rchild);//右子树高度

high=(lhigh>rhigh?lhigh:rhigh)+1;//树的高度等于左子树、右子树之间的大者加上根结点1。

}

return high;

}

int Width(BinTree T)

{ //求宽度算法由周鲁航提供,非常感谢BinTree Queue[MAXNODE];

int Front,Rear,n=1,i,j,m,k=0;

i=j=m=0;

if(T==NULL)

return 0;

Front=-1;

Rear=0;

Queue[Rear]=T;

while(Front!=Rear)

{

Front++;

if(Queue[Front]->lchild!=NULL)

{

i++;

Rear++;

Queue[Rear]=Queue[Front]->lchild;

}

else

j++;

if(Queue[Front]->rchild!=NULL)

{

i++;

Rear++;

Queue[Rear]=Queue[Front]->rchild;

}

else

j++;

if(i+j==pow(2,n)-m&&Front!=Rear)

{

if(i>k)

k=i;

m=(m+j)*2;

n++;

i=j=0;

}

}

return k;

}//算法结束

void main()

{ //测试程序

BinTree root;

CreatBinTree (&root);

printf("\nHeight of BinTree:%d",Height(root));

printf("\nWidth of BinTree:%d",Width(root));

}

6.25 要交换各结点的左右子树,最方便的办法是用后序遍历算法,每访问一个结点时把两棵子树的指针进行交换,最后一次访问是交换根结点的子树。

#include

#include "bintree.h"

void ChangeBinTree(BinTree *T)

{ //交换子树

if(*T)

{ //这里以指针为参数使得交换在实参的结点上进行

//后序遍历

BinTree temp;

ChangeBinTree(&(*T)->lchild);

ChangeBinTree(&(*T)->rchild);

temp=(*T)->lchild;

(*T)->lchild=(*T)->rchild;

(*T)->rchild=temp;

}

}

void PrintNode(BinTree T)

{ //以前序序列打印结点数据

if(T)

{

printf("%c",T->data);

PrintNode(T->lchild);

PrintNode(T->rchild);

}

}

void main()

{ //测试程序

BinTree root;

CreatBinTree(&root);//建立二叉链表

PrintNode(root); //输出原表

printf("\n");

ChangeBinTree(&root);//交换子树

PrintNode(root); //输出新表

printf("\n");

//可输入"abc d ef g "来测试(注意空格),看看对不对?

6.26 解:题目问为什么newroot要说明为BinTree型指针,其实我们前面已经知道,因为调用函数只能进行值传递,当返回类型为void时,就必须把实参的地址传给函数,否则函数不会对实际参数进行任何操作,也就得不到所需结果了。

程序如下:

#include

#include

#include "bintree.h"

void CopyTree(BinTree root,BinTree *newroot)

{ //拷贝二叉树

if(root)//如果结点非空

{ //按前序序列拷贝

*newroot=(BinTNode *)malloc(sizeof(BinTNode));//生成新结点

(*newroot)->data=root->data;//拷贝结点数据

CopyTree(root->lchild,&(*newroot)->lchild);//拷贝左子树

CopyTree(root->rchild,&(*newroot)->rchild);//拷贝右子树

}

else //如果结点为空

*newroot=NULL;//将结点置空

}

void PrintNode(BinTree T)

{ //以前序序列打印结点数据

if(T)

{

printf("%c",T->data);

PrintNode(T->lchild);

PrintNode(T->rchild);

}

}

void main( )

{

//测试程序

BinTree root;

BinTree New;//构造一个动态二叉树根

CreatBinTree(&root);//构造一棵二叉树

PrintNode(root);

printf("\n");

CopyTree(root,&New);//注意此处用&把新树的根地址传给函数

PrintNode(New);

6.27 本题答案由周鲁航提供:

//在二叉树中查找指定值为X的结点

int LocatBTree(BinTree bt,elemtype x)

{

if(bt)

{

if(bt->data==x)

d=1;

LocatBTree(bt->Lchild,x);

LocatBTree(bt->Rchild,x);

}

return d;

}

////////////////////////////////////

//查找到后,显示X结点所在的层。非递归算法

//思路:按照二叉树公式,i层应有2^(i-1)个结点,该层的空结点数+非空结点数应刚好等于它。

//空结点数为:上一层的空结点*2+这一层的空结点数

//按这个规律,每当出队结点+该层的的空结点数=这层最多拥有的结点数,就意味着走完了一层,

//因此层数加一计数,当找到要找的值时停止计数。

#include

#define MAXNODE 30

int LocatCeng(BinTree bt,elemtype x)

{//用层序遍历计算深度。

BinTree Queue[MAXNODE];//附加队列

int Front,Rear,n=1,i,j,m;

i=j=m=0;

if(bt==NULL)

return 0;

Front=-1;

Rear=0;

Queue[Rear]=bt;

while(Front!=Rear)

{

Front++;

if(Queue[Front]->Lchild!=NULL&&Queue[Front]->data!=x)

{

i++;

Rear++;

Queue[Rear]=Queue[Front]->Lchild;

}

else

if(Queue[Front]->Lchild==NULL)

j++;

if(Queue[Front]->Rchild!=NULL&&Queue[Front]->data!=x)

{

i++;

Rear++;

Queue[Rear]=Queue[Front]->Rchild;

}

else

if(Queue[Front]->Rchild==NULL)

j++;

if(Queue[Front]->data==x)

break;

if(i+j==pow(2,n)-m&&Front!=Rear)

{

m=(m+j)*2;

n++;

i=j=0;

}

}

return n;

}

//以下存为6.27LocatBTree.h

//////////////////////////////////////

以下为主程序。

#include

#include

#include"OVERFLOW.H"

#include"InsertBtree.h"

#include"BianLi.h"

int d;

#include"6.27LocatBTree.h"

////////////////////////////////

void main()

{

int n;

BinTree T;

char x;

InsertBtree(&T);//建立二叉树

PreOrder(T);

printf("\n");

x=getchar();

scanf("%c",&x);

while(x!=' ')

{

d=0;

if(LocatBTree(T,x))

{

n=LocatCeng(T,x);

printf("查找成功,%c结点位于第%d层\n",x,n);

}

else

printf("查找失败.\n");

x=getchar();

scanf("%c",&x);

}

}

/////////////////////////////////////

//存为OVERFLOW.H

void OVERFLOW(void)

{

printf("内存已满\n");

exit(0);

}

/////////////////////////////////////

//以下存为InsertBtree.h

typedef char elemtype;

typedef struct node

{

elemtype data;

struct node *Lchild,*Rchild;

}BinTNode;//结点类型

typedef BinTNode *BinTree;

///////////////////////////////

//建立二叉树

void InsertBtree(BinTree *bt)

{

char ch;

scanf("%c",&ch);

if(ch==' ')

*bt=NULL;

else

{

if(!(*bt=(BinTNode*)malloc(sizeof(BinTNode)))) OVERFLOW();

(*bt)->data=ch;

InsertBtree(&(*bt)->Lchild);

InsertBtree(&(*bt)->Rchild);

}

}

////////////////////////////////////////

//以下存为:BianLi.h

//前序遍历二叉树

void PreOrder(BinTree T)

{

if(T)

{

printf("%c",T->data);

PreOrder(T->Lchild);

PreOrder(T->Rchild);

}

}

/////////////////////////

//中序遍历二叉树

void InOrder(BinTree T)

{

if(T)

{

InOrder(T->Lchild);

printf("%c",T->data);

InOrder(T->Rchild);

}

}

/////////////////////////////

//后序遍历二叉树

void PostOrder(BinTree T)

{

if(T)

{

PostOrder(T->Lchild);

PostOrder(T->Rchild);

printf("%c",T->data);

}

}

///////////////////////////////////////////

//以下是采用递归的简洁算法:(海静提供)

V oid Findinbintree(bintree T,int &level,datatype x){ //调用时,*level初始化为1 if(T){

if(T->data==x)

return;

(* level)++;

Findinbintree(T->lchild,level,x);

if((*level)<0){ //左子树未找到,继续在右子树中找

*level=1;

Findinbintree(T->rchild,level,x);

}

}

}

6.28 解:以向量为存储结构的完全二叉树,其存储在向量中的结点其实是按层次遍历的次序存放的,可以根据课本第74页的内容设计出算法:

#include

typedef char DataType;//设结点数据类型为char

#define M 100//设结点数不超过100

typedef DataType BinTree[M];

void CreatBinTree(BinTree *T)

{ //以向量结构建立完全二叉树

int n;

printf("输入结点个数及结点值:");

scanf("%d",&n);//输入结点个数

int i;

(*T)[0]=n; //下标为0的结点存储结点个数

for(i=1;i<=n;i++)

{ //输入每个结点数据

(*T)[i]=getchar();

}

}

void PrintTree(BinTree T)

{ int i;

for(i=1; i<=T[0];i++)

printf("%c",T[i]);

}

void Preorder(BinTree T)

{ //前序遍历算法

int n=T[0];

int p[M];//设置一队列存放结点值

数据结构-习题-第六章-树

数据结构-习题-第六章-树和二叉树

E F D G A B / + + * - C * 第六章 树和二叉树 一、选择题 1.已知一算术表达式的中缀形式为 A+B*C-D/E ,后缀形式为ABC*+DE/-,其前缀形式为( ) A .-A+B*C/DE B. -A+B*CD/E C .-+*ABC/DE D. -+A*BC/DE 【北京航空航天大学 1999 一、3 (2分)】 2.算术表达式a+b*(c+d/e )转为后缀表达式 后为( )【中山大学 1999 一、5】 A .ab+cde/* B .abcde/+*+ C .abcde/*++ D .abcde*/++ 3. 设有一表示算术表达式的二叉树(见下图), 它所表示的算术表达式是( ) 【南京理工大学1999 一、20(2分)】 A. A*B+C/(D*E)+(F-G) B. (A*B+C)/(D*E)+(F-G) C. (A*B+C)/(D*E+(F-G )) D. A*B+C/D*E+F-G 4. 设树T 的度为4,其中度为1,2,3和4的 结点个数分别为4,2,1,1 则T 中的叶子数 为( ) A .5 B .6 C .7

D.8 【南京理工大学 2000 一、8 (1.5分)】5. 在下述结论中,正确的是()【南京理工大学 1999 一、4 (1分)】 ①只有一个结点的二叉树的度为0; ②二叉树的度为2;③二叉树的左右子树可任意交换; ④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。 A.①②③ B.②③④ C.② ④ D.①④ 6. 设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵树的结点个数是() A.m-n B.m-n-1 C.n+1 D.条件不足,无法确定【南京理工大学2000 一、17(1.5分)】 7. 树是结点的有限集合,它( (1))根结点,记为T。其余结点分成为m(m>0)个((2))的集合T1,T2,…,Tm,每个集合又都是树,此时结点T称为Ti的父结点,Ti称为T的子结点(1≤i≤m)。一个结点的子结点个数称为该结

大学无机化学第六章试题及答案

第六章化学键理论 本章总目标: 1:掌握离子键、共价键和金属键的基本特征以及它们的区别; 2:了解物质的性质与分子结构和键参数的关系; 3:重点掌握路易斯理论、价电子对互斥理论、杂化轨道理论以及分子轨道理论。 4:熟悉几种分子间作用力。 各小节目标: 第一节:离子键理论 1:掌握离子键的形成、性质和强度,学会从离子的电荷、电子构型和半径三个方面案例讨论离子的特征。 2:了解离子晶体的特征及几种简单离子晶体的晶体结构,初步学习从离子的电荷、电子构象和半径三个方面来分析离子晶体的空间构型。 第二节:共价键理论 1;掌握路易斯理论。 2:理解共价键的形成和本质。掌握价键理论的三个基本要点和共价键的类型。3:理解并掌握价层电子对互斥理论要点并学会用此理论来判断共价分子的结构,并会用杂化轨道理论和分子轨道理论来解释分子的构型。 第三节:金属键理论 了解金属键的能带理论和三种常见的金属晶格。 第四节:分子间作用力 1:了解分子极性的判断和分子间作用力(范德华力)以及氢键这种次级键的形成原因。 2;初步掌握离子极化作用及其强度影响因素以及此作用对化合物结构及性质的影响。 习题 一选择题 1.下列化合物含有极性共价键的是()(《无机化学例题与习题》吉大版) A.KClO 3 B.Na 2 O 2 C. Na 2 O D.KI 2.下列分子或离子中键能最大的是()

A. O 2 B.O 2 - C. O 2 2+ D. O 2 2- 3. 下列化合物共价性最强的是()(《无机化学例题与习题》吉大版) A.LiI B.CsI C. BeI 2 D.MgI 2 4.极化能力最强的离子应具有的特性是() A.离子电荷高,离子半径大 B.离子电荷高,离子半径小 C.离子电荷低,离子半径小 D.离子电荷低,离子半径大 5. 下列化合物中,键的极性最弱的是()(《无机化学例题与习题》吉大版) A.FeCl 3 B.AlCl 3 C. SiCl 4 D.PCl 5 6.对下列各组稳定性大小判断正确的是() A.O 2+>O 2 2- B. O 2 ->O 2 C. NO+>NO D. OF->OF 7. 下列化合物中,含有非极性共价键的离子化合物是()(《无机化学例题与习题》吉大版) A.H 2O 2 B.NaCO 3 C. Na 2 O 2 D.KO 3 8.下列各对物质中,是等电子体的为() A.O 22-和O 3 B. C和B+ C. He和Li D. N 2 和CO 9. 中心原子采取sp2杂化的分子是()(《无机化学例题与习题》吉大版) A.NH 3 B.BCl 3 C. PCl 3 D.H 2 O 10.下列分子中含有两个不同键长的是() A .CO 2 B.SO 3 C. SF 4 D.XeF 4 11. 下列分子或离子中,不含有孤电子对的是()(《无机化学例题与习题》吉大版) A. H 2O B. H 3 O+ C. NH 3 D. NH 4 + 12.氨比甲烷易溶于水,其原因是() A.相对分子质量的差别 B.密度的差别 C. 氢键 D.熔点的差别 13. 下列分子属于极性分子的是()(《无机化学例题与习题》吉大版) A. CCl 4 B.CH 3 OCH 3 C. BCl 3 D. PCl 5 14.下列哪一种物质只需克服色散力就能使之沸腾( ) A.HCl B.CH 3Cl https://www.360docs.net/doc/db946061.html,l 4 D.NH 3 15. 下列分子中,中心原子采取等性杂化的是()(《无机化学例题与习题》吉大版)

测量计算题库及参考答案

计算题库及参考答案 1、设A 点高程为15.023m ,欲测设设计高程为16.000m 的B 点,水准仪安置在A 、B 两点之间,读得A 尺读数a=2.340m ,B 尺读数b 为多少时,才能使尺底高程为B 点高程。 【解】水准仪的仪器高为=i H 15.023+2.23=17.363m ,则B 尺的后视读数应为 b=17.363-16=1.363m ,此时,B 尺零点的高程为16m 。 2、在1∶2000地形图上,量得一段距离d =23.2cm ,其测量中误差=d m ±0.1cm ,求该段距离的实地长度 D 及中误差D m 。 【解】==dM D 23.2×2000=464m ,==d D Mm m 2000×0.1=200cm=2m 。 3、已知图中AB 的坐标方位角,观测了图中四个水平角,试计算边长B →1,1→2,2→3, 3→4的坐标方位角。 【解】=1B α197°15′27″+90°29′25″-180°=107°44′52″ =12α107°44′52″+106°16′32″-180°=34°01′24″ =23α34°01′24″+270°52′48″-180°=124°54′12″ =34α124°54′12″+299°35′46″ -180°=244°29′58″ 4、在同一观测条件下,对某水平角观测了五测回,观测值分别为:39°40′30″,39°40′48″,39°40′54″,39°40′42″,39°40′36″,试计算: ① 该角的算术平均值——39°40′42″; ② 一测回水平角观测中误差——±9.487″; ③ 五测回算术平均值的中误差——±4.243″。 5、在一个直角三角形中,独立丈量了两条直角边a ,b ,其中误差均为m ,试推导由a ,b 边计算所得斜边c 的中误差c m 的公式? 【解】斜边c 的计算公式为22b a c += ,全微分得 db c b da c a bdb b a ada b a d c +=+++=--2)(212)(21212 22122 应用误差传播定律得2 22 222222222m m c b a m c b m c a m c =+=+= 6、已知=AB α89°12′01″,=B x 3065.347m ,=B y 2135.265m ,坐标推算路线为B →1→2,测得坐标推算路线的右角分别为=B β32°30′12″,=1β261°06′16″,水平距离分别为=1B D 123.704m ,=12D 98.506m ,试计算1,2点的平面坐标。 【解】 1) 推算坐标方位角 =1B α89°12′01″-32°30′12″+180°=236°41′49″ =12α236°41′49″-261°06′16″+180°=155°35′33″ 2) 计算坐标增量 =?1B x 123.704×cos236°41′49″=-67.922m , =?1B y 123.704×sin236°41′49″=-103.389m 。 =?12x 98.506×cos155°35′33″=-89.702m , =?12y 98.506×sin155°35′33″=40.705m 。 3) 计算1,2点的平面坐标 图 推算支导线的坐标方位角

第六章习题参考答案

第六章 1、接口电路与外部设备之间传送的信号有哪几种?传输方向怎样?按照传输信号的种类分类,I/O端口可分为几种?它们信号的传输方向怎样? 答: 接口电路与外部设备之间传送的信号有三种:状态信号、数据信号、控制信号。传输方向:控制信号单向输出;数据信号双向(输入或输出);状态信号单向输入。 按照传输信号的种类分类,I/O端口可分为三种:数据端口、控制端口、状态端口。它们信号的传输方向为:数据端口双向、控制端口单向输出、状态端口单向输入。 2、接口电路有哪些功能?哪些功能是必需的? 答:接口电路功能有:⑴地址译码功能;⑵数据锁存功能;⑶信息转换功能;⑷工作方式选择功能;⑸信号联络功能;⑹中断管理功能;⑺复位功能;⑻错误检测功能。前两项功能是不同接口电路必需的。 3、I/O端口的编址有哪几种方法?各有什么利弊?80X86系列CPU采用哪种方法? 答: I/O端口的编址有两种方法:独立编址、与存储器统一编址。 ⑴独立编址:需要专门的输入输出指令访问I/O端口,但不占用内存范围,程序可读性好。 ⑵统一编址:不需要专门的输入输出指令访问I/O端口,寻址灵活,但I/O端口占用内存范围,程序可读性不好。 ⑶80X86系列CPU采用独立编址。 5、外部设备数据传送有哪几种控制方式?从外部设备的角度,比较不同方式对外部设备的响应速度。 解:CPU与外部设备数据传送的控制方式有无条件传送、程序查询、中断及DMA方式。 ⑴无条件传送方式的外部设备是简单设备,总是处于就绪状态,随时可以进行数据传送,响应速度很快。 ⑵程序查询方式的外部设备是慢速设备,CPU通过查询其状态端口判断其是否就绪,就绪时才可以进行一次传送,否则就必须等待。这种方式简单可靠,但CPU与外部设备串行工作,大量时间用于查询等待,效率最低。 ⑶中断传送方式由慢速设备在就绪时主动向CPU提出服务申请(中断请求),CPU响应中断请求后,与外设进行一次数据传送,其余时间CPU执行正常程序。这种方式CPU与外部设备并行工作,效率(数据传输速率)得以提高,实时性较好。 ⑷DMA方式适用于内存与外设之间的高速大批量数据传送,这时内存与外设在DMAC 的管理下,直接进行高速大批量数据传送,不经过CPU,大大提高了数据传输速率,但控

中国近代史题库第六章

1[单选题] 1945年8月,毛泽东发表的号召对日本侵略者实行全国规模反攻的文章是 ?A.《为抗日救国告全国同胞书》 ?B.《关于目前形势与党的任务的决定》 ?C.《论持久战》 ?D.《对日寇的最后一战》 参考答案:D 2[单选题] 1945年4月,包括中国解放区代表董必武在内的中国代表团出席了 ?A.《联合国家宣言》签署会议 ?B.德黑兰会议 ?C.雅尔塔会议 ?D.联合国制宪会议 参考答案:D 3[单选题] 整风运动中最主要的任务是 ?A.反对主观主义 ?B.反对宗派主义 ?C.反对官僚主义 ?D.反对党八股 参考答案:A 4[单选题] 在延安整风运动中,毛泽东对“实事求是”这个成语做了新的解释.他认为,“是”主要是指 ?A.客观存在着的一切事务 ?B.客观事物的内部联系,即规律性 ?C.我们去研究 ?D.理论联系实际 参考答案:B 5[单选题] “墙上芦苇,头重脚轻根底浅;山间竹笋,嘴尖皮厚腹中空。”毛泽东在延安整风运动期间用这副对联形象地讽刺了 ?A.主观主义的学风 ?B.宗派主义的党风 ?C.党八股的文风 ?D.官僚主义的作风 参考答案:A

6[单选题] “我们共产党和共产党领导的八路军、新四军,是革命的队伍,我们这个队伍完全是为着解放人民的,是彻底为人民利益服务的。”这段话所反映的思想观点是 ?A.一切为了群众,一切依靠群众 ?B.从群众中来,到群众中去 ?C.一切从实际出发,理论联系实际 ?D.自力更生,艰苦奋斗 参考答案:A 7[单选题] 毛泽东思想得到多方面展开而达到成熟的标志是 ?A.农村包围城市道路理论的形成 ?B.实事求是思想路线的提出 ?C.新民主主义理论的系统阐明 ?D.毛泽东思想活的灵魂的概括 参考答案:C 8[单选题] 抗日战争时期,中国共产党的土地政策是 ?A.没收地主阶级土地 ? B.征收富农多余财产 ?C.消灭富农 ?D.减租减息 参考答案:D 9[单选题] 1940年,毛泽东发表的比较完整地阐明了新民主主义的基本理论.基本纲领.基本政策,为各抗日根据地的建设指明了方向的文章是 ?A.《论联合政府》 ?B.《新民主主义论》 ?C.《陕甘宁边区施政纲领》 ?D.《论人民民主专政》 参考答案:B 10[单选题] 抗日民族统一战线中的顽固势力是指 ?A.民族资产阶级 ?B.城市小资产阶级 ?C.大地主大资产阶级的抗日派 ?D.地方实力派 参考答案:C

六年级数学简便计算练习题及答案.doc

一、基础知识。(5小题,共26分。) 1.读音节,找词语朋友。(10分) táo zuì nínɡ zhònɡ wǎn lián ēn cì ()()()() zī rùn kuí wú zhēn zhì miǎn lì ()()()() xuán yá qiào bì hú lún tūn zǎo ()() 2.读一读,加点字念什么,在正确的音节下面画“_”。(4分) 镌.刻(juān juàn)抚摩.(mó mē)扁.舟(biān piān)阻挠.(náo ráo)塑.料(suò sù)挫.折(cuō cuò)归宿.(sù xiǔ)瘦削.(xiāo xuē)3.请你为“肖”字加偏旁,组成新的字填写的空格内。(4分) 陡()的悬崖胜利的()息俊()的姑娘 ()好的铅笔弥漫的()烟畅()的商品 ()遥自在的生活元()佳节 4.按要求填空,你一定行的。(4分) “巷”字用音序查字法先查音序(),再查音节()。按部首查字法先查()部,再查()画。能组成词语()。 “漫”字在字典里的意思有:①水过满,向外流;②到处都是;③不受约束,随便。 (1)我漫.不经心地一脚把马鞍踢下楼去。字意是() (2)瞧,盆子里的水漫出来了。字意是() (3)剩下一个义项可以组词为() 5.成语大比拼。(4分) 风()同()()崖()壁()()无比 和()可()()扬顿()()高()重 ( )不()席张()李() 二、积累运用。(3小题,共20分。) 1.你能用到学过的成语填一填吗?(每空1分) 人们常用来比喻知音难觅或乐曲高妙,用来赞美达芬

(1)鲁迅先生说过:“,俯首甘为孺子牛。” (2),此花开尽更无花。 (3)必寡信。这句名言告诉我们。 (4)但存,留与。 (5)大漠沙如雪,。 3.按要求写句子。(每句2分) (1)闰土回家去了。我还深深地思念着闰土。(用合适的关联词组成一句话)(2)老人叫住了我,说:“是我打扰了你吗?”(改成间接引语) (3)这山中的一切,哪个不是我的朋友?(改为陈述句) (4)月亮升起来了。(扩句) (5)小鱼在水里游来游去。(改写成拟人句) 三、口语交际。(共3分。) 随着“嫦娥一号”卫星的发射成功,作为中华少年的我们,面对祖国的飞速发展的科技,你想到了什么?想说点什么呢? 四、阅读下面短文,回答问题。(10小题,共26分。) 1.课内阅读。(阅读文段,完成练习) 嘎羧来到石碑前,选了一块平坦的草地,一对象牙就像两支铁镐,在地上挖掘起来。它已经好几天没吃东西了,又经过长途跋涉,体力不济,挖一阵就 喘息一阵。嘎羧从早晨一直挖到下午,终于挖出了一个椭圆形的浅坑。它滑下

第六章习题参考答案

第六章习题参考答案 1. 填空题 (1) 电气互锁规律:为了使两接触器不能同时工作,只需将两接触器的常闭触点互相串入对方的线圈电路中即可。 (2) 异步电动机有三种降压起动方法,分别是:Y-Δ降压起动控制、自耦降压起动控制、定子串电阻降压起动控制。 (3) 控制柜、操作台和生产现场相互之间的连接线越少越好;同一电器的不同触点在线路中应尽可能具有更多的公共接线。 (4) 在控制电路中,应尽量将所有电气的联锁触点接在线圈的左端,线圈的右端直接接电源。 (5) 电气线路设计时,选用的电器元件要可靠、牢固、动作时间少、抗干扰性能好。 (6) 在频繁操作的可逆线路中,正反向接触器之间不但要有电气联锁,而且还要有机械联锁。 (7) 控制电路在正常工作或事故情况下,发生意外接通的电路叫寄生电路。 (8) 在自动控制系统中,常用的保护环节有短路、过流、过载、过压、失压、弱磁、超速、极限等。 (9) 常用的短路保护元件有熔断器和断路器。 (10) 电气控制线路通常有两种设计方法:经验设计法和逻辑设计法。 2. 简答题 (1) 什么是点动?什么是自锁?电路中为什么要设计自锁环节? 答:点动是电动机控制方式中的一种,其控制电路如图6-1所示,由于在这一控制回路中没有自保,也没有并接其它的自动装置,只是按下控制回路的启动按扭,主回路才通电;松开启动按扭,主回路就没电了。实现了一点就动,松手就停的控制过程。 自锁在直接起停控制电路中的运用如图6-2所示,在启动按钮下方并联一个交流接触器的常开辅助触点,以保证按下起动按纽后,接触器吸合,电路接通,松开起动按纽后电路仍接通,电机持续运转,这种作用称为自锁,直到按下停止按纽才能使电机停车。 自锁是一种在异常情况下保护线路和电气设备的措施,加入自锁,在松开控制按钮后电动机还能运转。 (2) 什么是联锁?为什么要设计联锁环节? 答:生产机械或自动生产线由许多运动部件组成,不同运动部件之间有联系又互相制约。这种互相联系而又互相制约的控制称为联锁。 在电路中设计联锁环节,使在控制线路中一条支路通电时保证另一条支路断电,确保按照生产机械加工的工艺和工作过程顺序运行。 (3) 某设备所用电动机,额定功率为15kW,额定电压为380V,额定电流为11A,起动电流是额定电流的6.5倍,现用按钮进行起停控制,要求有短路保护和过载保护,试选用控制所需的合适的电器:接触器、按钮、熔断器、热继电器。 答:由题可知电动机的额定电流为11A,下面根据额定电流来选择各器件的型号。 1)接触器KM型号的选择: 显然应选交流接触器;电动机额定电压为380V,故KM主触头额定电压选为AC380V;电动机额定电流为11A,起动电流是额定电流的6.5倍,故接触器额定电流等级选择100A。 故可以选择型号为CJ10-100的交流接触器。 2)按钮SB型号的选择: ?

数据结构 习题 第六章 树和二叉树

第六章 树和二叉树 一、选择题 1.已知一算术表达式的中缀形式为 A+B*C-D/E ,后缀形式为ABC*+DE/-,其前缀形式为 ( ) A .-A+B*C/DE B. -A+B*CD/E C .-+*ABC/DE D. -+A*BC/DE 【北京航空航天大学 1999 一、3 (2分)】 2.算术表达式a+b*(c+d/e )转为后缀表达式后为( )【中山大学 1999 一、5】 A .ab+cde/* B .abcde/+*+ C .abcde/*++ D .3. 设有一表示算术表达式的二叉树(见下图), 它所表示的算术表达式是( ) 【南京理工大学1999 一、20(2分)】 A. A*B+C/(D*E)+(F-G) B. (A*B+C)/(D*E)+(F-G) C. (A*B+C)/(D*E+(F-G )) D. A*B+C/D*E+F-G 4. 设树T 的度为4,其中度为1,2,3和4的结点个数分别为4,2,1 ,1 则T 中的叶子数为( ) A .5 B .6 C .7 D .8 【南京理工大学 2000 一、8 (1.5分)】 5. 在下述结论中,正确的是( )【南京理工大学 1999 一、4 (1分)】 ①只有一个结点的二叉树的度为0; ②二叉树的度为2; ③二叉树的左右子树可任意 交换; ④深度为K 的完全二叉树的结点个数小于或等于深度相同的满二叉树。 A .①②③ B .②③④ C .②④ D .①④ 6. 设森林F 对应的二叉树为B ,它有m 个结点,B 的根为p,p 的右子树结点个数为n,森林F 中第一棵树的结点个数是( ) A .m-n B .m-n-1 C .n+1 D .条件不足,无法确定 【南京理工大学2000 一、 17(1.5分)】 7. 树是结点的有限集合,它( (1))根结点,记为T 。其余结点分成为m (m>0)个((2)) 的集合T1,T2, …,Tm ,每个集合又都是树,此时结点T 称为Ti 的父结点,Ti 称为T 的子结点(1≤i ≤m )。一个结点的子结点个数称为该结点的( (3) )。二叉树与树是两个 不同的概念,二叉树也是结点的有限集合,它((4))根结点。可以把树的根结点的层数定 义为1,其他结点的层数等于其父结点所在层数加上1。令T 是一棵二叉树,Ki 和Kj 是T 中子结点数小于2的结点中的任意两个,它们所在的层数分别为λKi 和λKj ,当关系式│ λKi-λKj │≤1一定成立时,则称T 为一棵((5))。供选择的答案: (1)(4) A. 有0个或1个 B. 有0个或多个 C. 有且只有一个 D. 有1个或1 个以上 (2) A. 互不相交 B.允许相交 C.允许叶结点相交 D.允许树枝结点相交 (3) A. 权 B.维数 C.次数 D.序 (5) A. 丰满树 B.查找树 C.平衡树 D.完全树 【上海海运学院1999二、 2(5分)】 8.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是( ) A .9 B .11 C .15 D .不确定 【北京工商大学2001一.7(3 分)】 9.在一棵三元树中度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2

第六章抽样调查习题答案

第六章抽样调查习题答案 一、单项选择题 1、 C 2、 A 3、 D 4、 D 5、C 6、 D 7、 C 8、 A 9、 D 10、A 11、 D 12、C 13、B 14、 A 15、A 16、 B 17、 B 18、D 19、 A 20、A 21、 A 22、 D 23、 D 24、 B 25、A 二、判断题 1、CD 2、AE 3、BCD 4、ABDE 5、ABD 6、AB 7、ABCD 8、AC 9、ABCD 三、判断题 1、× 2、√ 3、√ 4、√ 5、√ 6、× 7、√ 8、× 9、√10、√11、×12、√13、√14、×15、× 16、√17、√18、× 四、填空题 1、随机、部分、总体 2、计算、控制 3、重复、不重复 4、大于 5、点估计、区间估计 6、增加到4倍、减少三分之二、 减少四分之三7、大样本、小样本8、正、反 五、复习思考题 1、影响抽样误差的主要因素有哪些? 答:影响抽样误差大小的因素主要有: (1)总体单位的标志值的差异程度。差异程度愈大则抽样误差愈大,反之则愈小。 (2)样本单位数的多少。在其他条件相同的情况下,样本单位数愈多,则抽样误差愈小。 (3)抽样方法。抽样方法不同,抽样误差也不相同。一般说,重复抽样比不重复抽样,误差 要大些。 (4)抽样调查的组织形式。抽样调查的组织形式不同,其抽样误差也不相同,而且同一组织 形式的合理程度也会影响抽样误差。 2、什么是抽样调查?它有哪些特点? 答:抽样调查是根据部分实际调查结果来推断总体标志总量的一种统计调查方法,属于非 全面调查的范畴。它是按照科学的原理和计算,从若干单位组成的事物总体中,抽取部分样 本单位来进行调查、观察,用所得到的调查标志的数据以代表总体,推断总体。 (1)只抽取总体中的一部分单位进行调查。

数据结构第6章树练习

void PreOrder_Nonrecursive(Bitree T)//先序遍历二叉树的非递归算法 { InitStack(S); Push(S,T); //根指针进栈 while(!StackEmpty(S)) { while(Gettop(S,p)&&p) { visit(p->data); push(S,p->lchild); } //向左走到尽头 pop(S,p); if(!StackEmpty(S)) { pop(S,p); push(S,p->rchild); //向右一步 } }//while }//PreOrder_Nonrecursive 一、下面是有关二叉树的叙述,请判断正误 1.二叉树中每个结点的两棵子树的高度差等于1。() 2.二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。() 3.对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最多能有2i —1个结点。() 4.用二叉链表法(link-rlink)存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。() 5.具有12个结点的完全二叉树有5个度为2的结点。() 最快方法:用叶子数=[n/2]=6,再求n2=n0-1=5 6.二叉树是度为2的有序树() 7.完全二叉树一定存在度为1的结点() 8.深度为K的二叉树中结点总数≤2k-1() 9.由一棵二叉树的先序序列和后序序列可以惟一确定它() 10.完全二叉树中,若一个结点没有左孩子,则它必是树叶()

11.用二叉链表存储n个结点的二叉树时,结点的2n个指针中有n+1个空指针()12.完全二叉树的存储结构通常采用顺序存储结构() 13.哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近()14.在中序线索二叉树中,每一非空的线索均指向其祖先结点() 二、填空 1. 一棵具有257个结点的完全二叉树,它的深度为。 2. 用5个权值{3, 2, 4, 5, 1}构造的哈夫曼(Huffman)树的带权路径长度是 3.深度为H 的完全二叉树至少有_____________个结点;至多有_____________个结点4.已知二叉树有50个叶子结点,则该二叉树的总结点数至少是_____________。 5. n(n大于1)个结点的各棵树中,其深度最小的那棵树的深度是_____________。它共有_____________个叶子结点和_____________个非叶子结点,其中深度最大的那棵树的深度是_____________,它共有_____________个叶子结点和_____________个非叶子结点。 三、单项选择题 1.有关二叉树下列说法正确的是() A)二叉树的度为2 B)一棵二叉树的度可以小于2 C)二叉树中至少有一个结点的度为2 D)二叉树中任何一个结点的度都为2 2.二叉树的第I层上最多含有结点数为() A)2I B)2I-1-1 C)2I-1D)2I-1 3.具有10个叶结点的二叉树中有()个度为2的结点 A)8 B)9 C)10 D)11 4.在下述结论中,正确的是() ①只有一个结点的二叉树的度为0; ②二叉树的度为2; ③二叉树的左右子树可任意交换; ④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。 A)①②③B)②③④C)②④D)①④ 5.由3 个结点可以构造出多少种不同的二叉树?() A)2 B)3 C)4 D)5 6.引入二叉线索树的目的是()

第六章试题答案

1. 物流管理信息系统分析阶段产生的系统分析说明书,既是后续各阶段开发工作的依据,也是衡量一个物流信息系统优劣的依据。P98 2. 物流信息系统的开发就是要实现目标系统的物理模型,即建立一个物理系统。物理模型是由系统的逻辑模型经过实例化得来的。物理模型用来描述系统“怎么做”的问题,逻辑模型则用来描述系统“做什么”的问题。P99 3. 物流管理信息系统详细调查的对象是现行系统(包括手工系统和已采用计算机的管理信息系统),目的在于完整掌握现行系统的现状,发现问题和薄弱环节,收集资料,为下一步的系统化分析和提出新系统的逻辑设计做好准备。P101 4.在进行物流管理信息系统详细调查时,经常需要收集各业务部门业务中所使用的计划、原始凭证、单据和报表的格式。P102 5. 物流管理信息系统详细调查方法之一,访问访问是指系统分析人员通过提问的方式与用户交谈,是系统详细调查的主要方式。访问时可以在以下几个方面提出问题。(1)输出方面; (2)处理方面;(3)输入方面;(4)数据存储方面。P103 6. 物流管理信息系统详细调查经常需要召开调查会,它常由开发人员主持,请各业务部门介绍各部门主要的工作阶段、工作流程、管理模式等,开发人员也可以介绍计算机在辅助管理方面所能发挥的优点,通过讨论,使信息系统分析员的理解和用户的需求达成一致。P103 7. 物流管理信息系统详细调查采用的调查表设计有两种自由式问卷和选择式问卷。P103 8. 物流管理信息系统详细调查结果的表示工具有以下几种:(1)组织结构图;(2)业务流程图;(3)数据流程图;(4) U /C 矩阵;(5)数据字典。P103 9.企业组织结构中不同部门及其权责的划分,反映了组织机构之间的分工协作关系,称为部门结构。P104 10. 企业组织结构中不同层次及其责权的划分,反映了组织机构之间的上下级或领导隶属关系,称为层次结构。P104 11. 物流企业内部的组织结构,从横向看可划分为若干不同部门,从担负商品流通职能的共性出发,物流企业内部的组织结构基本分为业务经营部门、职能管理部门和行政事务部门。P104 12. 对业务流程进行描述可以使用业务流程图(Transaction Flow Diagram ,TFD)这个图形工具,它用一些规定的符号和连线来表达某个具体业务处理过程。业务流程图是在业务功能的基础上将其细化,利用系统调查的资料,用完整的图形将业务处理过程中的所有处理步骤串联起来。P108 13. 使用5种基本符号,系统分析员按照业务的实际处理步骤和过程完成业务流程图的绘制, 200 年 月江苏省高等教育自学考试 27324 物流信息系统 第6章物流管理信息系统分析 一、填空题(每1分,共20分)

第六章“输入输出及接口”习题答案

第六章输入输出及接口 〔习题6.2〕 I/O端口与存储器地址常有__????___?和__????___?两种编排方式,8088/8086处理器支持后者,设计有专门的I/O指令。其中指令IN是将数据从__????___?传输到__????___?,执行该指令时8088/8086处理器引脚产生__????___?总线周期。指令“OUT DX, AL”的目的操作数是__????___?寻址方式,源操作数是__????___?寻址方式。 〔解答〕 (I/O端口与存储器地址)统一编址 (I/O端口与存储器地址)独立编址 外设 处理器 I/O读 (I/O端口的DX)寄存器间接 寄存器 〔习题6.4〕 基于教程P142图6-7接口电路,编程使发光二极管循环发光。具体要求是:单独按下开关K0,发光二极管以L0、L1、L2、……L7顺序依次点亮,每个维持200ms,并不断重复,直到有其他按键操作;单独按下开关K1,发光二极管以L7、L6、L5、……L0顺序依次点亮,每个也维持200ms,并不断重复,直到有其他按键操作;其他开关组合均不发光,单独按下开关K7,则退出控制程序。延时200ms可以直接调用子程序DELAY实现。 〔解答〕 again: mov dx,6000h mov al,0ffh out dx,al ;全不亮 again1: in al,dx cmp al,7fh ;D7~D0=0111111B ? jz done ;单独按下K7,退出 cmp al,0feh ;D7~D0=11111110B ? jz next1 ;单独按下K0,转移到next1 cmp al,0fdh ;D7~D0=11111101B ? jz next2 ;单独按下K1,转移到next2 jmp again ;其它情况不点亮 next1: mov cx,8 mov al,1 ;从K0开始 next11: out dx,al ;某个LED电亮 call delay ;延时200ms shl al,1 ;rol al,1 loop next11 jmp again1 next2: mov cx,8

第六章题库2答案

第六章中华民族的抗日战争 一、单项选择题 1.【答案】D【解析】1937年7月7日,发生卢沟桥事变,日本全面侵华战争由此开始。D选项正确。 2.【答案】A【解析】1931年9月18日深夜,日本关东军制造了九一八事变,日本变中国为其独占殖民地的阶段由此开始。A选项正确。 3.【答案】B【解析】遵义会议开始确立了以毛泽东为代表的新的中央的领导;洛川会议制定了抗日救国十大纲领;中共七大确立了毛泽东思想为党的指导思想。瓦窑堡会议,提出了在抗日的条件下与民族资产阶级重建统一战线的新政策。B选项正确。 4.【答案】C【解析】1936年5月,宋庆龄等爱国民主人士发起成立全国各界救国联合会;中国国民党临时行动委员会是第三党的名称,中国民权保障同盟成立于1932年,中国民族武装自卫委员会成立于1934年。C选项正确。 5.【答案】A【解析】1936年5月,中共中央发布《停战议和一致抗日》通电,放弃了“反蒋抗日”的口号,第一次公开把蒋介石作为联合的对象。A选项正确。 6.【答案】D【解析】一二·九运动,促进了中华民族的觉醒,标志着中国人民抗日救亡运动新高潮的到来。D选项正确。 7.【答案】C【解析】《论反对日本帝国主义的策略》是1935年12月瓦窑堡会议上毛泽东作的报告;《关于目前形势与党的任务的决议》、《抗日救国十大纲领》是洛川会议制定的。C选项正确。 8.【答案】B【解析】西安事变的和平解决成为时局转换的枢纽,标志十年内战的局面由此结束,国内和平基本实现。B选项正确。 9.【答案】C【解析】国民党的内外政策在中国国民党第五次全国代表大会发生了某些变化;国民党五届三中全会在会议文件上第一次写上了“抗日”的字样,标志着国民党内外政策转向和平、抗日;国民党五届五中全会确定了“防共、限共、溶共、反共”的方针;国民党六全大会召开于1945年6月,抗战即将结束。C选项正确。 10.【答案】D【解析】国民党没有实行过积极防御;持久战是毛泽东提出的,是敌后抗日根据地的基本方针;国民党在战略防御阶段没采用运动战,而是进行单纯的阵地防御战。D选项正确。 11.【答案】C【解析】淞沪战役、忻口战役、武汉战役等战役都失败了;李宗仁指挥的台儿庄战役取得了大捷。C选项正确。 12.【答案】D【解析】中国人民在九一八事变后开始了局部抗战,揭开了世界反法西斯战争的序幕;卢沟桥事变是中国全国性抗战的开始。D选项正确。 13.【答案】B【解析】1939年1月,国民党五届五中全会决定成立“防共委员会”,确定了“防共、限共、溶共、反共”的方针,标志着国民党由片面抗战逐步转变为消极抗战。B选项正确。 14.【答案】D【解析】遵义会议开始确立了以毛泽东为代表的新的中央的领导;中共瓦窑堡会议提出了在抗日的条件下与民族资产阶级重建统一战线的新政策;洛川会议通过了《关于目前形势与党的任务的决定》、《抗日救国十大纲领》。D选项正确。 15.【答案】B【解析】抓住“第一次”这个关键词,平型关大捷是全国性抗战开始后中国军队的第一次重大胜利;台儿庄战役的时间晚;淞沪会战以国民党战败结束;长沙会战总共三次,有胜有败。B选项正确。 16.【答案】B【解析】遵义会议开始确立了以毛泽东为代表的新的中央的领导;瓦窑堡会议提出了在抗日的条件下与民族资产阶级重建统一战线的新政策;洛川会议提出了关于抗日的基本主张;中共六届六中全会毛泽东明确地提出了“马克思主义的中国化”这个命题。

土木工程测量6_计算题库及参考答案

土木工程测量6_计算题库 及参考答案 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

计算题库及参考答案 1、设A 点高程为,欲测设设计高程为的B 点,水准仪安置在A 、B 两点之间,读得A 尺读数a=,B 尺读数b 为多少时,才能使尺底高程为B 点高程。 【解】水准仪的仪器高为=i H +=,则B 尺的后视读数应为 b==,此时,B 尺零点的高程为16m 。 2、在1∶2000地形图上,量得一段距离d =,其测量中误差=d m ±,求该段距离的实地长度D 及中误差D m 。 【解】==dM D ×2000=464m ,==d D Mm m 2000×=200cm=2m 。 3、已知图中AB 的坐标方位角,观测了图中四个水平角,试计算边长B →1,1→2,2→3,3→4的坐标方位角。 【解】=1B α197°15′27″+90°29′25″-180°=107°44′52″ =12α107°44′52″+106°16′32″-180°=34°01′24″ =23α34°01′24″+270°52′48″-180°=124°54′12″ =34α124°54′12″+299°35′46″-180°=244°29′58″ 4、在同一观测条件下,对某水平角观测了五测回,观测值分别为:39°40′30″,39°40′48″,39°40′54″,39°40′42″,39°40′36″,试计算: ① 该角的算术平均值——39°40′42″; ② 一测回水平角观测中误差——±″; ③ 五测回算术平均值的中误差——±″。 5、在一个直角三角形中,独立丈量了两条直角边a ,b ,其中误差均为m ,试推导由a ,b 边计算所得斜边c 的中误差c m 的公式 【解】斜边c 的计算公式为22b a c +=,全微分得 db c b da c a bdb b a ada b a d c +=+++=--2)(212)(2121 222 1 22 应用误差传播定律得2 22 222222222m m c b a m c b m c a m c =+=+= 6、已知=AB α89°12′01″,=B x ,=B y ,坐标推算路线为B →1→2,测得坐标推算路线的右角分别为=B β32°30′12″,=1β261°06′16″,水平距离分别为=1B D ,=12D ,试计算1,2点的平面坐标。 【解】 1) 推算坐标方位角 =1B α89°12′01″-32°30′12″+180°=236°41′49″ =12α236°41′49″-261°06′16″+180°=155°35′33″ 2) 计算坐标增量 =?1B x ×cos236°41′49″=, =?1B y ×sin236°41′49″=。 =?12x ×cos155°35′33″=, 图 推算支导线的坐标方位角

第六章抽样调查练习及答案

第六章抽样调查 一、填空题 1.抽选样本单位时要遵守原则,使样本单位被抽中的机会。 2.常用的总体指标有、、。 3.在抽样估计中,样本指标又称为量,总体指标又称为。 4.全及总体标志变异程度越大,抽样误差就;全及总体标志变异程度越小, 抽样误差。 5.抽样估计的方法有和两种。 6.整群抽样是对被抽中群内的进行的抽样组织方式。 7.误差分为和代表性误差;代表性误差分为________和偏差;偏差是 ____________________________,也称为________________。 8.简单随机抽样的成数抽样平均误差计算公式是:重复抽样条件下:; 不重复抽样条件下:。 9.误差范围△,概率度t和抽样平均误差 之间的关系表达式为。 10.抽样调查的组织形式有:。 二、单项选择题 1.所谓大样本是指样本单位数在( )及以上 A 30个 B 50个 C 80个D100个 2.抽样指标与总体指标之间抽样误差的可能范围是( )

A 抽样平均误差 B 抽样极限误差 C 区间估计范围 D 置信区间 3.抽样平均误差说明抽样指标与总体指标之间的( ) A 实际误差 B 平均误差 C 实际误差的平方 D 允许误差 4.是非标志方差的计算公式( ) A P(1-P) B P(1-P)2 C )1(P P D P 2(1-P) 5.总体平均数和样本平均数之间的关系是( ) A 总体平均数是确定值,样本平均数是随机变量 B 总体平均数是随机变量,样本平均数是确定值 C 两者都是随机变量 D 两者都是确定值 6.对入库的一批产品抽检10件,其中有9件合格,可以( )概率保证合格率不低于80%。 A 95.45% B 99.7396 C 68.27% D 90% 7.在简单随机重复抽样情况下,若要求允许误差为原来的2/3,则样本容量( ) A 扩大为原来的3倍 B 扩大为原来的2/3倍 C 扩大为原来的4/9倍 D 扩大为原来的2.25倍 8.根据抽样调查得知:甲企业一等品产品比重为30%,乙企业一等品比重为50% 一等品产品比重的抽样平均误差为 ( ) A 甲企业大 B 两企业相同 C 乙企业大 D 无法判断 9.是非标志的平均数是( ) A -P)1P( B P(1-P) C p D (1-P)2 10.重复抽样的误差一定( )不重复抽样的误差。

数据结构第六章树和二叉树习题及答案

习题六树和二叉树 一、单项选择题 1.以下说法错误的是() A. 树形结构的特点是一个结点可以有多个直接前趋 B. 线性结构中的一个结点至多只有一个直接后继 C. 树形结构可以表达(组织)更复杂的数据 D. 树(及一切树形结构)是一种”分支层次”结构 E. 任何只含一个结点的集合是一棵树 2. 下列说法中正确的是() A. 任何一棵二叉树中至少有一个结点的度为2 B. 任何一棵二叉树中每个结点的度都为2 C. 任何一棵二叉树中的度肯定等于2 D. 任何一棵二叉树中的度可以小于2 3. 讨论树、森林和二叉树的关系,目的是为了() A. 借助二叉树上的运算方法去实现对树的一些运算 B. 将树、森林按二叉树的存储方式进行存储 C. 将树、森林转换成二叉树 D. 体现一种技巧,没有什么实际意义4.树最适合用来表示() A. 有序数据元素 B .无序数据元素 C.元素之间具有分支层次关系的数据 D .元素之间无联系的数据 5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()A.9 B .11 C .15 D .不确定 6. 设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1, M2和M3与森林F 对应的二叉树根结点的右子树上的结点个数是()。 A.M1 B .M1+M2 C .M3 D .M2+M3 7.一棵完全二叉树上有1001个结点,其中叶子结点的个数是() A.250 B .500 C .254 D .505 E .以上答案都不对 8. 设给定权值总数有n 个,其哈夫曼树的结点总数为() A. 不确定 B . 2n C . 2n+1 D . 2n-1 9.二叉树的第I 层上最多含有结点数为() I I-1 I-1 I A.2I B .2 I-1 -1 C .2 I-1 D .2 I -1 10.一棵二叉树高度为h, 所有结点的度或为0,或为2,则这棵二叉树最少有()结点A.2h B .2h-1 C .2h+1 D .h+1 11. 利用二叉链表存储树,则根结点的右指针是()。 A.指向最左孩子 B .指向最右孩子 C .空D .非空 12.已知一棵二叉树的前序遍历结果为为()。 A.CBEFDA B .FEDCBA 13.已知某二叉树的后序遍历序列是()。 ABCDEF中序遍历结果 为 C .CBEDFA D dabec, 中序遍历序列是 CBAEDF则后序遍历的结 果 .不定 debac , 它的前序遍历是

相关文档
最新文档