| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 654 人关注过本帖
标题:大侠帮忙把空填一下吧,在线急等
只看楼主 加入收藏
xc836
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2004-12-9
收藏
 问题点数:0 回复次数:1 
大侠帮忙把空填一下吧,在线急等

下面空的括号里每空一句

#include <alloc.h> #include <stdio.h> #define M 10 typedef struct node { char data; int lt,rt; struct node *lc,*rc; }JD;

JD *zxxsh(JD *bt) { JD *p,*pr,*s[M],*t; int i=0; t=(JD *)malloc(sizeof(JD)); t->lt=0; t->rt=1; t->rc=t; if(bt==NULL) t->lc=t; else { t->lc=bt; pr=t; p=bt; do { while(p!=NULL) { s[i++]=p; p=p->lc; } if(i>0) { p=s[--i]; printf("%c ",p->data); if(p->lc==NULL) { p->lt=1; p->lc=pr; } if(pr->rc==NULL) { pr->rt=1; pr->rc=p; } pr=p; p=p->rc; } }while(i>0||p!=NULL); pr->rc=t; pr->rt=1; t->rc=pr; } return(t); }

void zxblxss(JD *t) { /* 在中序线索树中找后继的方式遍历中序二叉树*/ JD *p; p=t->lc; do { while(p->lt==0) p=p->lc; printf("%c ",p->data); while(( )&&(p->rc!=t)) { ( ); printf("%c ",p->data); } ( ); }while(p!=t); }

void zxblxss_2(JD *t) { /* 从头结点的rc域找到中序序列中的最后一个结点, 再从最后一个结点起找前驱,遍历中序二叉树*/ JD *p; p=t->rc; do { printf("%c ",p->data); while(( )&&(p->lc!=t)) { p=p->lc; printf("%c ",p->data); } ( ); while(p->rt==0) ( );

}while(p!=t); }

JD *crt_bt_pre(JD *bt) { char ch; printf("ch="); scanf("%c",&ch); getchar(); if(ch==' ') bt=NULL; else { bt=(JD *)malloc(sizeof(JD)); bt->data=ch; bt->lt=bt->rt=0; bt->lc=crt_bt_pre(bt->lc); bt->rc=crt_bt_pre(bt->rc); } return(bt); }

void main() { JD *head=NULL; head=crt_bt_pre(head); head=zxxsh(head); printf("\n"); zxblxss(head); printf("\n"); zxblxss_2(head); }

[此贴子已经被作者于2004-12-09 15:42:29编辑过]

搜索更多相关主题的帖子: 在线 
2004-12-09 15:38
moodboy
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2004-12-11
收藏
得分:0 

这么简单的问题,自己去多加实验吧。

2004-12-11 10:53
快速回复:大侠帮忙把空填一下吧,在线急等
数据加载中...
 
   



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

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