| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 461 人关注过本帖
标题:哪里有问题啊,谁帮看看,已解决!
只看楼主 加入收藏
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
结帖率:92.86%
收藏
已结贴  问题点数:20 回复次数:2 
哪里有问题啊,谁帮看看,已解决!
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#define LEN sizeof(bitree)
#define MAXSIZE 256
typedef struct node
{
  char ch;
  struct node *left,*right;
}*bitree;
//建树
bitree createbitree()
{
   bitree t;
   char c;
   c=getchar();
   if(c=='#') t=NULL;
   else
   {
     t=(bitree)malloc(LEN);
     if(t)
     {
      t->ch=c;
      t->left=createbitree(t->left);
      t->right=createbitree(t->right);
     }
   }
   return t;
}
//递归先序遍历
void preordertravse(bitree t)
{
     if(t!=NULL)
   {
     putchar(t->ch);
     preordertravse(t->left);
     preordertravse(t->right);
   }
}
//非递归先序遍历
void preorder_n(bitree t)
{
  bitree stack[MAXSIZE],p;
  int top=0;
  stack[top++]=t;
  while(top>0)
  {
     p=stack[--top];
     if(p!=NULL)  
     {
       putchar(p->ch);
       if(p->right) stack[top++]=p->right;
       if(p->left) stack[top++]=p->left;
     }
  }
}
//递归中序遍历
void midordertravse(bitree t)
{
  if(t!=NULL)
   {
     preordertravse(t->left);
     putchar(t->ch);
     preordertravse(t->right);
   }
}
//递归后序遍历
void postordertravse(bitree t)
{
  if(t!=NULL)
   {
     postordertravse(t->left);
     postordertravse(t->right);
     putchar(t->ch);
   }
}
//深度
int deepth(bitree t)
{
  int ld,rd;
  if(t==NULL) return 0;
   else
   {
    ld=deepth(t->left);
    rd=deepth(t->right);
    if(ld>rd) return ld+1;
    else return rd+1;
   }
}
//主函数****
int main()
{
  bitree tree_start;
  
  printf("建树: ");
  tree_start=createbitree();           
  
  printf("\n递归先序遍历 : ");
  preordertravse(tree_start);              
  
  
  printf("\n\n非递归先序遍历:");
  preorder_n(tree_start);     


  printf("\n\n递归中序遍历 : ");
  midordertravse(tree_start);  


  printf("\n\n递归后序遍历 : ");
  postordertravse(tree_start);  


  printf("\n\n树的深度为:%d\n\n",deepth(tree_start));

  return 0;
}


[ 本帖最后由 xdh0817 于 2012-2-11 21:41 编辑 ]
搜索更多相关主题的帖子: 390 看看 include return 
2012-02-11 16:29
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
收藏
得分:20 
你没有必要给createbitree传递参数,直接在函数体内定义就好了。不知道你有什么问题,反正在使用上来看,这样做就会生成一棵只有左子树的树

酱油实习生
2012-02-11 21:03
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
收藏
得分:0 
以下是引用墨清扬在2012-2-11 21:03:38的发言:

 你没有必要给createbitree传递参数,直接在函数体内定义就好了。不知道你有什么问题,反正在使用上来看,这样做就会生成一棵只有左子树的树

已经解决,没问题了

是啊,没必要传参数,又改了一下,这次没warning了
2012-02-11 21:29
快速回复:哪里有问题啊,谁帮看看,已解决!
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015955 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved