| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 616 人关注过本帖
标题:请帮我改一下
取消只看楼主 加入收藏
qingfeng
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-5-24
收藏
 问题点数:0 回复次数:0 
请帮我改一下

#include<malloc.h> #include<stdio.h> #include<stdlib.h> #include<math.h> #define ERROR 0 #define OK 1 #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 #define OVERFLOW 0 ] #define int Status typedef char TElemType; typedef struct BiTNode{ TElemType date; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree;

typedef struct QNode{ TElemType date; struct QNode *next; }QNode,*QueuePtr; typedef struct{ QueuePtr front; QueuePtr rear; }LinkQueue; Status InitQueue(LinkQueue &Q){ Q.front = Q.rear = (QueuePtr)malloc(sizeof(QNode)); if(!Q.front) exit (OVERFLOW); Q.front->next = NULL; return OK; }

Status EnQueue (LinkQueue &Q,TElemType e){ //插入元素 QueuePtr p; p = (QueuePtr)malloc(sizeof(QNode)); if(!p) exit (OVERFLOW); p->date = e;p->next = NULL; Q.rear->next=p; Q.rear = p; return OK; }

Status DeQueue (LinkQueue &Q,TElemType &e){ if(Q.front == Q.rear) return ERROR; QueuePtr p; p = Q.front->next; e = p->date; Q.front->next = p->next; if(Q.rear == p) Q.rear = Q.front; free(p); return OK; }

Status CreateBiTree(BiTree T)//按先序次序输入二叉树中结点的值,'#'代表空树 { char ch; ch=getchar(); if (ch=='#') T=NULL; /* #代表空指针*/ else { T=(BiTree)malloc(sizeof(BiTNode));//*申请结点 */ if(!T) exit(OVERFLOW); T->data=ch; /*生成根结点 */ CreateBiTree(T->lchild); /*构造左子树 */ CreateBiTree(T->rchild); /*构造右子树 */ } return OK;

} Status LevelOrderTraverse(BiTree T ){ EnQueue(Q , T) ; While ( ! QueueEmpty(Q) ) { DeQueue(Q , p) ; printf (p->data) ; //打印结点 if (T->lchild) EnQueue(Q , T->lchild ) ; if (T->rchild) EnQueue(Q , T->rchild ) ; } return OK; }

void main () { BiTree T; CreateBiTree(T); LevelOrderTraverse ( T ) ; }

2005-05-25 11:34
快速回复:请帮我改一下
数据加载中...
 
   



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

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