| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 544 人关注过本帖
标题:新手提问额...
只看楼主 加入收藏
a5648c
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-9-29
收藏
 问题点数:0 回复次数:1 
新手提问额...
#include "stdio.h"
#include "malloc.h"
#define stack_size 100
#define addsize 20


typedef struct BNode
{  char data;  //二叉树中的元素类型为char类型
  struct BNode *lchild;
struct BNode *rchild;
} *BiTree;


void CreatBiTree(BiTree &T)  //先序创建二叉树
{  char ch;
   scanf("%c",&ch);
   if(ch=='$') T=NULL;  //当输入'$'时表示创建的二叉树为空树
   else
 {  T=(BiTree)malloc(sizeof(struct BNode));
      T->data=ch;
      CreatBiTree(T->lchild);
      CreatBiTree(T->rchild);
   }
}

typedef struct {
BiTree *elem;
int top ;
int stacksize;
}stack;


int Initstack(stack&p)
{p.elem=(BiTree*)malloc(stack_size*sizeof(BiTree));
p.stacksize=stack_size;
if (!p.elem)
return 0;
p.top=0;
return 1;
}


int push(stack&p,BiTree e)
{if (p.top==p.stacksize-1)
{p.elem=(BiTree*)malloc((stack_size+addsize)*sizeof(BiTree));

if(!p.elem)
return 0;}
p.elem[p.top++]=e;
return 1;
}



BiTree pop(stack & p,BiTree e)
{if (p.top<=0)
return e=NULL;
e=p.elem[--p.top];
return e;}


BiTree gettop(stack&p,BiTree e)
{if (p.top<=0)
return e=NULL;
e=p.elem[p.top-1];
return e; }

int empty(stack&p)
{if(p.top<=0)
return 1;
return 0;}
 



void Preorder_N(BiTree T) //先序非递归遍历
//利用顺序栈实现二叉树的先序非递归遍历算法;顺序栈的实现参见实验二
{   stack S; //定义一个栈S,栈中元素为BiTree类型
    BiTree p;
Initstack(S);
push(S,T);
p=(BiTree)malloc(sizeof(BiTree));

  while(!empty(S))  //当栈非空时
 {  
     while (gettop(S,p)&&p)
 {
   printf("%c",p->data); push(S,p->lchild);}
   pop(S, p);//空指针出栈
   if(!empty(S))
 { pop(S,p); push(S,p->rchild);}
    } }
void main()
{   BiTree T;
    CreatBiTree(T);
    Preorder_N(T);
}

当我输入:a$$
输出的却是一堆相同的乱码。
能有人告诉我为什么吗?
谢谢
搜索更多相关主题的帖子: 提问 
2008-11-14 16:12
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1705
专家分:4345
注 册:2007-12-27
收藏
得分:0 
你这个是C++代码,我建议你去C++版求助

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2008-11-14 16:50
快速回复:新手提问额...
数据加载中...
 
   



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

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