| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 752 人关注过本帖
标题:查找二叉树一个节点的左右子树
取消只看楼主 加入收藏
寻找梦想1
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-5-1
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:0 
查找二叉树一个节点的左右子树
#include "stdio.h"
#include "stdlib.h"
int n=0;
int m=0;
typedef struct BiTNode
 {
   char data;
   BiTNode *Lchild,*Rchild; // 左右孩子指针
 }BiTNode,*BiTree;

void CreateBiTree(BiTree &T)
 {
   char ch;
   printf("输入结点值:\n");
   scanf("%c",&ch);
   getchar();
   
   if(ch=='0') // 空
     T=0;
   else
   {
     T=(BiTree)malloc(sizeof(BiTNode));
     T->Lchild=0;
     T->Rchild=0;
     if(!T)
       return;
     T->data=ch; // 生成根结点
     CreateBiTree(T->Lchild); // 构造左子树
     CreateBiTree(T->Rchild); // 构造右子树
   }
 }


void preorder (BiTNode *root)
 {//先序遍历root指向根的二叉树
          if (root!=0)   {
              printf("%c  ", root->data);//访问根结点,这里只是把根结点的值打印出来,
                                         //你可以做其它处理,比如修改、判别等。
              preorder(root->Lchild); //先序遍历根的左子树
              preorder(root->Rchild); //先序遍历根的右子树
          }//if
 }//preorder
void  chazhao(BiTNode *T,char x)
 {
   
    if(T->date==x)
    {
      n=T->Lchild;
      m=T->Rchild;
    }

   
        chazhao(T->Lchild,x);
        chazhao(T->Rchild,x);  
      //  if(num1!=0||num2!=0)   
        //    n++;
    //    return n;  
  }

 

void main()
{
    BiTNode *T;
    CreateBiTree(T);
    preorder(T);
    chazhao(T,'2');
    printf("\n%d\n%d",n,m);
   
}
2013-05-23 21:42
快速回复:查找二叉树一个节点的左右子树
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013120 second(s), 8 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved