| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 701 人关注过本帖
标题:[求助]这个程序怎样运行呀?(二叉树)
只看楼主 加入收藏
roames
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-5-16
收藏
 问题点数:0 回复次数:8 
[求助]这个程序怎样运行呀?(二叉树)

definition.h
#define INIT_SIZE 100
#define INCREMENT 10

typedef char TElemType;

typedef struct{
TElemType data;
struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;

typedef struct{
BiTree *top, *base;
unsigned stasksize;
}SqStask;

BiTree CreateBiTree(void);
void PreOrderTraverse(BiTree);
int InOrderTraver(BiTree);
int InOrderTraverse2(BiTree);
int Initstack(SqStack *);
int Push{SqStack *, BiTree); */

main.c
#include (stdio.h)
#include "definition.h"

int main()
{ BiTree bt;

print("shururoot; ");
bt = CreateBiTree();
PreOrderTraver(bt);
print("\n");
if( InOrderTraverse(bt) )
return 1;
print("\n");
if( InOrderTravwese2(bt) )
return 1;
print("\n");

return 0;
}

function.c
#include (stdio.h)
#include (malloc.h)
#include "definition.h"

BiTree CreateBiTree(void)
{ TElemType e;
BiTree tem = NULL;

if( (e=getchar())!='#'){
getchar();
tem = (BiTree)malloc(sizeof(BiTNode));
if(!tmp)
return NULL;
tmp->data=e;
printf("shuruleftchild; ");
tmp->lchild=CreateBiTree();
printf("shururightchild; ");
tmp->rchild=CreateBiTree();
}
else
getchar();

return tmp;
}

void PreOrderTraverse(BiTree bt)
{ if(bt){
printf("%c", bt->data);
PreOrderTraverse(bt->lchild);
PreOrderTraverse(bt->rchild);
}
}

int InOrderTraverse(BiTree bt)
{ SqStack S;
BiTree tmp;

if( InitStack(&s) )
return 1;
if( Push(&S, bt) )
return 1;
while(S.base!=S.top){
while( tmp=*(S.top-1) ){
if(Push(&S, tmp->lchild) )
return 1;
}
--S.top;
if(S.base!=S.top){
tmp = *(--S.top);
printf("%c", tmp->data);
if( Push(&S, tmp->rchild) )
return 1;
}
}

free(S.base);
return 0;
}

int InOrderTraverse2(BiTree bt)
{ SqStack S;
BiTree tmp = bt;

if( InitStack(&s) )
return 1;
while( tmp(S.base!=S.top) ){
if((tmp){
if( Push(&S, tmp) )
return 1;
tmp = tmp->lchild;
}
else{
tmp = *(--S.top);
printf("%c", tmp->data);
tmp = tmp->rchild;
}
}

free(S.base);
return 0;
}

int InitStack(SqStack *S)
{ S->base=(BiTree *)malloc( INIT_SIZE * sizeof(BiTree) );
if(!S->base)
return 1;
S->top=S->base;
S->stacksize=INIT_SIZE;
return 0;
}

int Push(SqStack *S,BiTree T)
{ if( (unsigned)(S->top - S->base) >=S->stacksize){
S->base=(BiTree *)realloc(S->base,(S->stacksize+INCREMENT)*sizeof(BiTree) );
if(!S->base)
return 1;
S->top = S->base + S->stacksize;
S->stacksize += INCREMENT;
}
*S->top++ = T;

return 0;
}

搜索更多相关主题的帖子: 二叉树 运行 
2006-05-16 15:26
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
无语~~

[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-05-16 15:28
黔山菜鸟
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-5-12
收藏
得分:0 
什么东东啊  功能

我为C狂  哈哈~~~~~~
2006-05-16 15:43
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
#include (stdio.h)
#include (malloc.h)

无语.....我还是去洗衣服吧.

[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-05-16 15:52
haiduc
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2005-11-30
收藏
得分:0 
这是三个文件:

definition.h
function.c
main.c


可以组成一个工程,不过前两个名字怎么不一样??

2006-05-16 18:25
独角龙
Rank: 1
等 级:新手上路
帖 子:221
专家分:0
注 册:2006-5-5
收藏
得分:0 
连个注释也没有!

奋斗改变一切!!
2006-05-16 19:14
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
以下是引用roames在2006-5-16 15:26:00的发言:

definition.h //源文件1之名也,请把下列内容录入该文件
#define INIT_SIZE 100
#define INCREMENT 10

typedef char TElemType;

typedef struct{
TElemType data;
struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;

typedef struct{
BiTree *top, *base;
unsigned stasksize;
}SqStask;

BiTree CreateBiTree(void);
void PreOrderTraverse(BiTree);
int InOrderTraver(BiTree);
int InOrderTraverse2(BiTree);
int Initstack(SqStack *);
int Push{SqStack *, BiTree);

===============================================================

main.c //源文件2之名也,请把下列内容录入该文件
#include <stdio.h> //应为尖角号
#include "definition.h"

int main()
{ BiTree bt;

print("shururoot; ");
bt = CreateBiTree();
PreOrderTraver(bt);
print("\n");
if( InOrderTraverse(bt) )
return 1;
print("\n");
if( InOrderTravwese2(bt) )
return 1;
print("\n");

return 0;
}

==============================================================

function.c//源文件3之名也,请把以下所有内容录入该文件
#include <stdio.h>
#include <malloc.h>
#include "definition.h"

BiTree CreateBiTree(void)
{ TElemType e;
BiTree tem = NULL;

if( (e=getchar())!='#'){
getchar();
tem = (BiTree)malloc(sizeof(BiTNode));
if(!tmp)
return NULL;
tmp->data=e;
printf("shuruleftchild; ");
tmp->lchild=CreateBiTree();
printf("shururightchild; ");
tmp->rchild=CreateBiTree();
}
else
getchar();

return tmp;
}

void PreOrderTraverse(BiTree bt)
{ if(bt){
printf("%c", bt->data);
PreOrderTraverse(bt->lchild);
PreOrderTraverse(bt->rchild);
}
}

int InOrderTraverse(BiTree bt)
{ SqStack S;
BiTree tmp;

if( InitStack(&s) )
return 1;
if( Push(&S, bt) )
return 1;
while(S.base!=S.top){
while( tmp=*(S.top-1) ){
if(Push(&S, tmp->lchild) )
return 1;
}
--S.top;
if(S.base!=S.top){
tmp = *(--S.top);
printf("%c", tmp->data);
if( Push(&S, tmp->rchild) )
return 1;
}
}

free(S.base);
return 0;
}

int InOrderTraverse2(BiTree bt)
{ SqStack S;
BiTree tmp = bt;

if( InitStack(&s) )
return 1;
while( tmp(S.base!=S.top) ){
if((tmp){
if( Push(&S, tmp) )
return 1;
tmp = tmp->lchild;
}
else{
tmp = *(--S.top);
printf("%c", tmp->data);
tmp = tmp->rchild;
}
}

free(S.base);
return 0;
}

int InitStack(SqStack *S)
{ S->base=(BiTree *)malloc( INIT_SIZE * sizeof(BiTree) );
if(!S->base)
return 1;
S->top=S->base;
S->stacksize=INIT_SIZE;
return 0;
}

int Push(SqStack *S,BiTree T)
{ if( (unsigned)(S->top - S->base) >=S->stacksize){
S->base=(BiTree *)realloc(S->base,(S->stacksize+INCREMENT)*sizeof(BiTree) );
if(!S->base)
return 1;
S->top = S->base + S->stacksize;
S->stacksize += INCREMENT;
}
*S->top++ = T;

return 0;
}

朋友,您的C基础较差,导致数据结构学习发生困难。


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-16 20:02
cl_lei
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-5-8
收藏
得分:0 
楼上也太直接了点吧!!
2006-05-18 18:44
EBC
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-4-27
收藏
得分:0 
原来梁肇新先生出过一本书《编程高手笺言》,其中就提到代码的书写问题:一定要写清楚注释,这是个很多书没有特别强调但确实是很重要的问题,也是个很好的习惯,建议LZ整理好代码以及注释,让大家看个明白
2006-05-18 22:48
快速回复:[求助]这个程序怎样运行呀?(二叉树)
数据加载中...
 
   



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

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