| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 544 人关注过本帖
标题:求助M叉树的一个问题
只看楼主 加入收藏
leejohn
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-8-18
收藏
 问题点数:0 回复次数:1 
求助M叉树的一个问题
阅读下列程序说明和C代码,将应填入__(n)__处的字句写在答题纸的对应栏内。
[程序4说明]
设 M 叉树采用列表法表示,即每棵子树对应一个列表,列表的结构为:子树根结点的值部分 (设为一个字符) 和用“( )”,括起来的各子树的列表 (如有子树的话) ,各子列表间用“,”,分隔。例如下面的三叉树可用列表 a( b( c,d ),e,f( g,h,i ))表示。
 

本程序输入列表,生成一棵 M 叉树,并由 M 叉树输出列表。假定输入无错误。
[程序4]
#include〈stdio.h〉
#include〈stdlib.h〉
#define M 3
typedef struct node{ char val;
struct node *subTree[M];
} NODE;
char buf[255] ,*str = buf
NODE *d = NULL
NODE *mackTree( ) /*由列表生成M叉树*/
{ int k; NODE *s ;
s = __(1)__
s -> val = *str++ ;
for ( k = 0 ; k < M ; k++ ) s-> subTree[k] = NULL ;
if(*str='( '){
k = 0;
do { str++;
s -> subTree[k] = __(2)__ ;
if ( *str == ')' ) { str++; break ; }
k = k+l ;
} while ( __(3)__ );
}
return s ;
}
void walkTree( NODE *t ) /*由 M 叉树输出列表*/
{ int i ;
if t != NULL ) {
__(4)__
if ( t -> subTree[0] == NULL ) return ;
putchar ( '( ' ) ;
for ( i = 0 ; i < m ; i++) {
__(5)__
if ( i! = M - l && t -> subTree[i+l] != NULL )
putchar ( ', ' ) ;
}
putchar ( ') ' ) ;
}
}
 
void main( )
{ printf( "Enter exp:" ) ;
scanf( "%S" , str ) ;
d = makeTree() ;
walkTree( d ) ; putchar( '\n') ;
}

我没搞对
搜索更多相关主题的帖子: 答题 include 
2007-09-19 22:56
myisgood
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-12-25
收藏
得分:0 
是软考的题目~ 你输入错了很多拉~ 不过我也不知道对不对了
不过我软考那时还是全国50强了~~ 我填写了 正确率肯定 60%以上拉~
你自己看看在研究了 !
/*求助M叉树的一个问题阅读下列程序说明和C代码,将应填入__(n)_
_处的字句写在答题纸的对应栏内。
[程序4说明]
设 M 叉树采用列表法表示,即每棵子树对应一个列表,列表的
结构为:子树根结点的值部分 (设为一个字符) 和用“( )”,括起来
的各子树的列表 (如有子树的话) ,各子列表间用“,”,分隔。例如
下面的三叉树可用列表 a( b( c,d ),e,f( g,h,i ))表示。
本程序输入列表,生成一棵 M 叉树,并由 M 叉树输出列表。假定输入无错误。
[程序4]*/
#include〈stdio.h〉
#include〈stdlib.h〉
#define M 3
typedef struct node{
char val;
struct node *subTree[M];
} NODE;
char buf[255] ,*str = buf;
NODE *d = NULL;
NODE *mackTree(); /*由列表生成M叉树*/
{ int k;
NODE *s ;
s=(NODE*)malloc(sizeof(NODE*));//__(1)__ ;
s -> val = *str++ ;
for ( k = 0 ; k < M ; k++ )
s-> subTree[k] = NULL ;
if(*str='( '){
k = 0;
do { str++;
s -> subTree[k] =*str++;// __(2)__ ;
if ( *str == ')' ) { str++; break ; }
k = k+1 ;
} while (k<M);//(3));
}
return s ;
}
void walkTree( NODE *t ) /*由 M 叉树输出列表*/
{ int i ;
if (t != NULL ) {
putchar(t->val); //__(4)__
if ( t -> subTree[0] == NULL ) return ;
putchar ( '( ' ) ;
for ( i = 0 ; i < m ; i++) {
putchar(t->subTree[i]->val);//__(5)__
if ( i! = M - l && t -> subTree[i+l] != NULL )
putchar ( ', ' ) ;
}
putchar ( ') ' ) ;
}
}
 
void main( )
{ printf( "Enter exp:" ) ;
scanf( "%S" , str ) ;
d = makeTree() ;
walkTree( d ) ; putchar( '\n') ;
}
2007-09-22 01:27
快速回复:求助M叉树的一个问题
数据加载中...
 
   



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

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