CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

各位高手,请帮帮我,关于二叉树的遍历问题,急等

楼主ayumixxx(ayumi)2003-12-01 01:06:42 在 C++ Builder / 基础类 提问

这是我的作业,我看了好几天都找不出错。好快就要变作业了,帮帮我。  
  我的编译过了,但是运行时在PREORDER中的显示current->data时运行停顿,说我不知什么错误,请大家一定要帮帮我,我快要交了。  
  以下是头文件:  
  //---------------------------------------------------------------------------  
   
  #ifndef   Unit1H  
  #define   Unit1H  
  //---------------------------------------------------------------------------  
  #include   <Classes.hpp>  
  #include   <Controls.hpp>  
  #include   <StdCtrls.hpp>  
  #include   <Forms.hpp>  
  #include   <Menus.hpp>  
  #include   <iostream.h>  
  //---------------------------------------------------------------------------  
  class   TForm1   :   public   TForm  
  {  
  __published: //   IDE-managed   Components  
                  TMainMenu   *MainMenu1;  
                  TMenuItem   *f1;  
                  TMenuItem   *n1;  
                  TMenuItem   *E1;  
                  TMenuItem   *M1;  
                  TMenuItem   *N2;  
                  TMenuItem   *N3;  
                  TMenuItem   *N4;  
                  TMenuItem   *N5;  
                  TMenuItem   *N6;  
                  TMenuItem   *N7;  
                  TMenuItem   *N8;  
                  TMenuItem   *N9;  
                  TMenuItem   *N10;  
                  TMenuItem   *N11;  
                  TMenuItem   *N12;  
                  void   __fastcall   E1Click(TObject   *Sender);  
                  void   __fastcall   n1Click(TObject   *Sender);  
                  void   __fastcall   N6Click(TObject   *Sender);  
  private: //   User   declarations  
  public: //   User   declarations  
                  __fastcall   TForm1(TComponent*   Owner);  
  };  
   
    class   btreenode  
    {  
      public:  
      char   data;  
      btreenode   *lchild;  
      btreenode   *rchild;  
      };  
      class   blinknode  
      {  
        public:  
         
        btreenode*   head;  
        btreenode*   create(int   first);  
        void   preorder(btreenode   *t,int   first);  
      };  
   
  //---------------------------------------------------------------------------  
  extern   PACKAGE   TForm1   *Form1;  
  //---------------------------------------------------------------------------  
  #endif  
  以下是。CPP文件:  
   
  #include   <vcl.h>  
  #pragma   hdrstop  
   
  #include   "Unit1.h"  
  //---------------------------------------------------------------------------  
  #pragma   package(smart_init)  
  #pragma   resource   "*.dfm"  
  TForm1   *Form1;  
  //---------------------------------------------------------------------------  
  __fastcall   TForm1::TForm1(TComponent*   Owner)  
                  :   TForm(Owner)  
  {  
  }  
  //---------------------------------------------------------------------------  
   
      blinknode   t;  
    int   i=5;  
      int   j=5;  
   
  void   __fastcall   TForm1::E1Click(TObject   *Sender)  
  {  
      Close();  
  }  
  //---------------------------------------------------------------------------  
   
    btreenode*   blinknode::create(int   first)  
    {  
        String   c;  
      btreenode   *current;  
      c=InputBox("建树","请输入元素的代号:","   ");  
      char   *ch;  
      ch=c.c_str();  
      if(*ch=='.')  
        current=NULL;  
          else  
          {  
            current=new   btreenode;  
            current->data=*ch;  
            if(first)  
              {  
                head=current;  
                first=0;  
                }  
              current->lchild=create(first);  
              current->rchild=create(first);  
              return   current;  
          }  
    }  
    void   blinknode::preorder(btreenode   *t,int   first)  
    {  
   
          btreenode   *current;  
      if(first)  
        {  
           
          first=0;  
          Form1->Canvas->TextOut(i,j,"以下是前序遍历递归的结果:");  
          j=j+2;  
          }  
          else   current=t;  
                if(current!=NULL)  
            {  
              Form1->Canvas->TextOut(i++,j,current->data);//在此处出现停顿,报错  
   
            preorder(current->lchild,first);  
                preorder(current->rchild,first);  
              }  
        }  
   
  void   __fastcall   TForm1::n1Click(TObject   *Sender)  
  {  
   
      t.create(1);  
   
  }  
  //---------------------------------------------------------------------------  
   
   
  void   __fastcall   TForm1::N6Click(TObject   *Sender)  
  {  
   
   
        t.preorder(   t.head,1);  
        i=5;  
  }  
  //---------------------------------------------------------------------------  
  问题点数:0、回复次数:3Top

1 楼h2plus0(~~~)回复于 2003-12-01 02:27:35 得分 0

create(int   first)   函数有问题!!!  
   
  你可参考一下<<数据结ASDFA构>>(清华版)   128   页   的程序,    
  感觉不用什么   first   这些变量啊,另外   cb   有很多调试方法,    
  比如断点,   你会觉得很有用的!  
   
  相信你一定能成的!  
  Top

2 楼ayumixxx(ayumi)回复于 2003-12-01 12:22:37 得分 0

帮顶一下Top

3 楼matq2008(叶子.net)回复于 2003-12-01 12:42:39 得分 0

分配内存Top

相关问题

  • 二叉树遍历
  • 非递归前序遍历二叉树
  • 遍历二叉树的问题
  • 二叉树的中序遍历,错误?
  • 非递归的二叉树的遍历
  • 树的遍历
  • 层遍历树
  • 请教 二叉树的后续遍历 和 层次遍历算法???急急!!!
  • 已知遍历儿叉树后的中根遍历序列为CDBAFGEIHJ和后序遍历序列为DCBGFIJHEA,试画出该二叉数.
  • 已知遍历儿叉树后的中根遍历序列为CDBAFGEIHJ和后序遍历序列为DCBGFIJHEA,试画出该二叉数

关键词

  • tmenuitem
  • btreenode
  • 帮帮
  • blinknode
  • fastcall
  • tform
  • current
  • tobject
  • owner
  • pragma

得分解答快速导航

  • 帖主:ayumixxx

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo