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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第六章课后习题

6、1、各层的结点数目是:K

2、编号为n的结点的双亲结点是:<=(n-2)/k的最大整数

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

4、编号为n的结点有右兄弟的条件是:(n-1)能被k整除

右兄弟的编号是:n+1.

7、1、先序序列和中序序列相同:空二叉树或没有左子树的二叉树。

2、中序序列和后序序列相同:空二叉树或没有右子树的二叉树。

3、先序序列和后序序列相同:空二叉树或只有根的二叉树。

9、中序序列:BDCEAFHG和后序序列:DECBHGFA的二叉树为:

A

B F

C G

D E H

先序序列:ABCDEFGH

算法设计:

3、typedef struct

{

int data[100];

int top;

}seqstack;

seqstack *s;

Perorder(char a[],int n)

{

int i=1,count=1;

s->top=-1;

if(n==0)return(0);

else

{

if(I<=n)

{

s->top++;

s->data[s->top]=a[I];

}

while(count

{

printf(“%c”,s->data[s->top]);

count++;

s->top--;

if(s->data[s->top]);==a[i])

{ printf(“%c”,s->data[s->top]);

count++;

s->top--;

}

if((2*i+1)

{

i=2*i;

s->top++;

s->data[s->top]=a[i+1];

s->top++;

s->data[s->top]=a[i];

}

else if(a*i

{

i=2*i;

s->top++;

s->data[s->top]=a[i];

}

else if(i/2%2==1)i=i/2/2+1;

else i=i/2+1;

}

}

}

main()

{

char A[]=“kognwyuvb”;

int n=strlen(A);

s=(seqstack *)malloc(sizeof(seqstack)); printf(“\n”);

Perorder(A,n);

}

相关文档
最新文档