| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 400 人关注过本帖
标题:[求助]请问这个c程序的流程(递推部分)
只看楼主 加入收藏
cctv1233321
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-7-8
收藏
 问题点数:0 回复次数:1 
[求助]请问这个c程序的流程(递推部分)

#include<stdio.h>
#include<string.h>
void zhuanhuan(char X[],char Y[])
{
int i,p,q,l,n,j,k,t;
char m,in1[100],in2[100],per1[100],per2[100];
l=strlen(Y);
if(l==0)
return;
if(l==1)
{
printf("%c",Y[0]);
return;
}
for(n=0;X[n]!='\0';n++)
{
if(X[n]==Y[0])
{
m=Y[0];
p=n;
break;
}
}
for(i=0;i<p;i++)
{
in1[i]=X[i];
}
in1[i+1]='\0';
t=0;
for(j=p+1;X[j]!='\0';j++)
{
in2[t++]=X[j];
}
in2[t]='\0';
t=0;
for(j=1;j<p+1;j++)
{
per1[t++]=Y[j];
}
per1[t]='\0';
t=0;
for(k=p+1;Y[k]!='\0';k++)
{
per2[t++]=Y[k];
}
per2[t]='\0';

if(l!=0)
zhuanhuan(in1,per1);
if(l!=0)
zhuanhuan(in2,per2);
printf("%c",m);


}
void main(void)
{
char X[100],Y[100];
printf("in-order:");
gets(X);
printf("per-order:");
gets(Y);
printf("post-order:");
zhuanhuan(X,Y);
printf("\n");
}

[此贴子已经被作者于2007-7-8 20:01:17编辑过]

搜索更多相关主题的帖子: 流程 
2007-07-08 20:00
huangfengchu
Rank: 1
等 级:新手上路
威 望:2
帖 子:274
专家分:0
注 册:2007-5-22
收藏
得分:0 

就是把那个两字符串,一拆为二,然后Y[]字符串里面再次保存是把原来第一个字符串删除掉剩余的,在把拆分之后的字符串回传递给函数,继续拆分,直至Y字符串里面只剩下一个字符或一空字符。
这程序好象如这循环没有执行,或者就是两字符串没有相等的字符下面的一些变量就没有定义,没有初值。
for(n=0;X[n]!='\0';n++)
{
if(X[n]==Y[0])
{
m=Y[0];
p=n;
break;
}
}


深山苦学C语言,终年不见外面世界。
2007-07-08 20:59
快速回复:[求助]请问这个c程序的流程(递推部分)
数据加载中...
 
   



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

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