⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bitree.cpp

📁 自己写的C++程序,水平还很有限,希望高手能够指点迷津,我将很感谢,真的很想成为程序高手
💻 CPP
字号:
// bitree.cpp: implementation of the bitree class.
//
//////////////////////////////////////////////////////////////////////

#include "bitree.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
 BiTree::BiTree( )
{
	root=0;
}
 BiTree::BiTree(BiTNode* lch,BiTNode* rch,Type item )
{   
    BiTNode* p;
	if(root==0)
	{
	    root=p;
		p->lchild=lch;
		p->rchild=rch;
		p->data=item;
	}
	else 
	{
		root->lchild=lch;
		root->rchild=rch;
		root->data=item;
	}

}
 BiTNode* BiTree::GetRoot( )const
{ 
		return root;
}
 BiTNode* BiTree::Parent( BiTNode *p)
{
	return root;
}
 BiTNode* BiTree::LeftChild( BiTNode *p)
{
	
		return p->lchild;
}
BiTNode* BiTree::RightChild( BiTNode *p )
{
	
		return p->rchild;

}
 int BiTree::Depth(BiTNode *p)
 {
	 if(!p)
		 return 0;
	 else
	 {
	 int i,j;
	 i=Depth(p->lchild);
	 j=Depth(p->rchild);
	 return i>j?i+1:j+1;
	 }
 }
 void  BiTree::PreOrderCreateBiTree(BiTNode * &T)
 {  
	 
	 char ch;
	 ch=getchar();
	 if(ch=='#');
	 else
	 {
		 T=(BiTNode*)malloc(sizeof(BiTNode));
		 T->lchild=T->rchild=0;
		 T->data=ch;
		 PreOrderCreateBiTree(T->lchild);
		 PreOrderCreateBiTree(T->rchild);
	 }
	 
 }
 void  BiTree::PrintBiTree(BiTNode *T)
 {
	 if(!T);
	else
	 {
		 cout<<T->data;
		 PrintBiTree(T->lchild);
		 PrintBiTree(T->rchild);
	 }
 }
 void BiTree::InOrdertraverse(BiTNode *T)
 {
	 if(!T);
	 else 
	 {
		 InOrdertraverse(T->lchild);
		 cout<<T->data;
		 InOrdertraverse(T->rchild);
	 }
 }
 
 BiTNode* BiTree::FatherNode(BiTNode* L,BiTNode* f,Type e)
 {  
	 if(!L);
	 else if(L->data==e)
	 {   
		 printf("(%c)",f->data);
		 return f;
	 }
	 else
	 {
		 FatherNode(L->lchild,L,e);
		 FatherNode(L->rchild,L,e);
	 }
 }
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -