试题四阅渎以下说叫和C函数,回答问题。 [说明] 已知某二叉树的非叶子节点都有两个孩子节点,现将该二叉树存储在结构数组Ht中。节点结构及数组Ht的定义如下: #define MAXLEAFNUM 30 Struct node{ char ch; char *pstr; int parent; int lchild, rchiid; }; Struct node Ht[2 *MAXLEAFNUM]; 该二叉树的n个叶子节点存储在下标为1~n的Ht数组元素中。例如,某二叉树如图8-26所示,其存储结构如图8-27所示,其中,与叶子节点a对应的数组元素下标为1,a的父节点存储在Ht[5],表示为Ht[1].parent=5。Ht[7].parent=0表示7号节点是树根,Ht[7].lchild=3、Ht[7].rchild=6分别表示7号节点的左孩子是3号节点、右孩子是6号节点。 如果用“0”或“1”分别标识二叉树的左分支和右分支如图8-26所示,从根节点开始到叶子节点为止,按所经过分支的次序将相应标识依次排列,可得到一个0、1序列,称之为对应叶子节点的编码。例如,图8-26中a、b、c、d的编码分别是100、101、0、11。 函数LeafCode(Ht[],n)的功能是:求解存储在Ht中的二叉树中所有叶子节点(n个)的编码,叶子节点存储在Ht[1]~Ht[n]中,求出的编码存储区由对应的数组元素pstr域指示。 函数LeafCode从叶子到根逆向求叶子节点的编码。例如,对图8-26中叶子节点a求编码的过程如图8-28所示。 [函数] typedef enum Status {ERROR, OK} Status; Status LeafCode (Struet node Ht[], int n) { int pc, pf; int i, start; char tstr[31]={’/0’); for(i=1; (1) ; i++) { start=29; pc=i; pf=Ht[i].parent; while(Pf!= (2) ) { if( (3) . lchiid==pc) tstr[--start]=’0’; else tstr[-start]=’1’; pc= (4) ; pf=Ht[Pf].parent; } Ht[i].pstr=(char*)malloc(31-start); if(!Ht[i].pstr)return ERROR; strcpy(Ht[i]. pstr, (5) ; } return OK; }

题库:初级程序员 类型:填空题 时间:2021-07-10 11:19:01 免费下载:《填空集》Word试卷

试题四阅渎以下说叫和C函数,回答问题。 [说明] 已知某二叉树的非叶子节点都有两个孩子节点,现将该二叉树存储在结构数组Ht中。节点结构及数组Ht的定义如下: #define MAXLEAFNUM 30 Struct node{ char ch; char *pstr; int parent; int lchild, rchiid; }; Struct node Ht[2 *MAXLEAFNUM]; 该二叉树的n个叶子节点存储在下标为1~n的Ht数组元素中。例如,某二叉树如图8-26所示,其存储结构如图8-27所示,其中,与叶子节点a对应的数组元素下标为1,a的父节点存储在Ht[5],表示为Ht[1].parent=5。Ht[7].parent=0表示7号节点是树根,Ht[7].lchild=3、Ht[7].rchild=6分别表示7号节点的左孩子是3号节点、右孩子是6号节点。 如果用“0”或“1”分别标识二叉树的左分支和右分支如图8-26所示,从根节点开始到叶子节点为止,按所经过分支的次序将相应标识依次排列,可得到一个0、1序列,称之为对应叶子节点的编码。例如,图8-26中a、b、c、d的编码分别是100、101、0、11。 函数LeafCode(Ht[],n)的功能是:求解存储在Ht中的二叉树中所有叶子节点(n个)的编码,叶子节点存储在Ht[1]~Ht[n]中,求出的编码存储区由对应的数组元素pstr域指示。 函数LeafCode从叶子到根逆向求叶子节点的编码。例如,对图8-26中叶子节点a求编码的过程如图8-28所示。 [函数] typedef enum Status {ERROR, OK} Status; Status LeafCode (Struet node Ht[], int n) { int pc, pf; int i, start; char tstr[31]={’/0’); for(i=1; (1) ; i++) { start=29; pc=i; pf=Ht[i].parent; while(Pf!= (2) ) { if( (3) . lchiid==pc) tstr[--start]=’0’; else tstr[-start]=’1’; pc= (4) ; pf=Ht[Pf].parent; } Ht[i].pstr=(char*)malloc(31-start); if(!Ht[i].pstr)return ERROR; strcpy(Ht[i]. pstr, (5) ; } return OK; }

试题四阅渎以下说叫和C函数,回答问题。
[说明] 
已知某二叉树的非叶子节点都有两个孩子节点,现将该二叉树存储在结构数组Ht中。节点结构及数组Ht的定义如下

本题关键词:锯叶竹节树,非树形结构,构件节点,构造节点,对节树根,有结构问题,樟树子,树腰子,节点,牛奶树子;

微信扫码获取答案解析
下载APP查看答案解析