回 帖 发 新 帖 刷新版面

主题:二叉树一个问题,急死了,求高手赐教

请教高手个问题,在/* 对二叉树 t 中所有结点的左右子树进行交换 */和 /*求度为“1”的结点总数*/程序中 怎么检查没有错误,老运行不出来,你看看是不是哪个细节出了问题,清高手不吝赐教,感谢!

/* 对二叉树 t 中所有结点的左右子树进行交换 */
include<iostream.h>  
#include<stdio.h>  
#include<iomanip.h>  
#include<malloc.h>  
#include<stdlib.h>  
#include<conio.h>  
#include<shlobj.h>  
#define MAXNODE 100  
 
//树的建立  
typedef struct bitnode  
{ char data;  
struct bitnode *lchild,*rchild;  
}bitnode,*bintree;  
 
//二叉树的二叉链表的存储算法  
void createbintree(bintree *t)  
{ char ch;  
cin>>ch;  
if(ch=='0')  
(*t)=NULL;  
else  
{ (*t)=new bitnode;  
 (*t)->data=ch;  
 createbintree(&(*t)->lchild);  
createbintree(&(*t)->rchild);  
}  
}  
 
/* 对二叉树 t 中所有结点的左右子树进行交换 */  
void exchange(bitnode *t)
{bitnode *p; 
p=t->lchild; 
t->lchild=t->rchild; 
t->rchild=p;  
exchange(t->lchild);
exchange(t->rchild);  

}  
/*exchange*/  
 
 
 
 
 
 

void main()  
{  
  
 bintree bt;
 createbintree(&bt); 
 exchange(bt);
}



 

 

 

 /*求度为“1”的结点总数*/

#include<iostream.h>  
#include<stdio.h>  
#include<iomanip.h>  
#include<malloc.h>  
#include<stdlib.h>  
#include<conio.h>  
#include<shlobj.h>  
#define MAXNODE 100 
 //树的建立  
typedef struct bitnode  
{ char data;  
struct bitnode *lchild,*rchild;  
}bitnode,*bintree;  


//二叉树的二叉链表的存储算法  
void createbintree(bintree *t)  
{ char ch;  
cin>>ch;  
if(ch=='0')  
(*t)=NULL;  
else  
{ (*t)=new bitnode;  
 (*t)->data=ch;  
 createbintree(&(*t)->lchild);  
 createbintree(&(*t)->rchild);  
}  
}  

int onechild(btree * b)/*求度为“1”的结点总数*/
{
 int num1,num2;
 if(b==NULL)return(0);
 else if((b->lchild==NULL&&b->rchild!=NULL)||(b->lchild!=NULL&&b->rchild==NULL))
  return(1);
 else
 {
  num1=onechild(b->lchild);
  num2=onechild(b->rchild);
  return(num1+num2);
 }
}


void main()  
{ bintree bt;  
 createbintree(&bt); 
 printf("结点为1的个数为:");
 printf("%d",onechild(bt));
  



回复列表 (共2个回复)

沙发

这个帖子我回复过了哦,自己看看哦

[url=http://www.programfan.com/club/post-247685.html]http://www.programfan.com/club/post-247685.html[/url]

板凳

谢谢

我来回复

您尚未登录,请登录后再回复。点此登录或注册