| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 694 人关注过本帖
标题:字符串和递归程序的设计方法??
只看楼主 加入收藏
yuqu
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-11-14
收藏
 问题点数:0 回复次数:2 
字符串和递归程序的设计方法??

要求:
(1)给出程序设计的基本思想、原理和算法描述。
(2)源程序给出合理适当的注释。
(3)保存和打印出程序的运行结果,并结合程序进行分析。
(4)使用c的数据结构定义。
(5) 重新改写主程序并运行,打印出文件清单和运行结果



字符串:
1、字符串匹配的简单算法。
int zfpp( char s[ ], char p[ ], int n , int m)
{
int i , j , k , flag;
i=0; flag=0;
while (i<=n-m && flag= =0)
{
i++;j=i;k=1;
while ( k<=m && s[j-1]= =p[k-1])j++,k++;
if ( k= =m+1) flag=1;
}
i--;
if ( flag= =0) i=-1;
return i;
}
2、字符串匹配的KMP算法。
int qfkmp (char s[ ], char p[ ])
{
int i, j, n , m , flag , *flink ;
void qlink ( );
n=strlen (s); m=strlen (p);
flink=malloc(m*sizeof (int));/* 建立失败链接数组空间 */
qlink (p, m , flink );/* 调用构造失败链接数组的函数 */
i=1;j=1;flag=0;
while ( i<=m && flag= =0)
{
while ( j!=0 && p[j-1]!=s[i-1]) j=flink[j-1];
if (j= =m) flag=1;
else i++, j++;
}
i=i-m;
If ( flag= =0) i= -1;
free (flink);
return i;
}
递归:
1、有如下递归函数:
Void print ( int w)
{
int i;
if ( w != 0)
{
print ( w-1);
for ( i=1;i<=w;i++) printf (“%3d”,w);
printf ( “\n”);
}
}
调用语句print(4)的结果为多少?

2、对如下给定的各递归函数求解调用结果,并分析算法功能。
(1)void PrintRV( int N)
{
if (N>0)
{
printf ( N %10) ;
PrintRV( N/10);
}
}
调用语句PrintRV(12345)。
(2)void PC ( int M , int N, int *K)
{
if ( N= =0 ) *K=1;
else {
PC( M-1, N-1, K);
*K=*K*M / N ;
}
}
调用语句PC(10,4,&M) ; printf ( “%d”, M ) ;
(3)int SS ( int N)
{
if ( N= =0 )return100;
else return SS( N-1)+N*N;
}
调用语句printf( “%d”, SS (6 ))
(4)int ACM ( int M , int N )
{
if (M<0 || N<0 ) printf (“ error”);
else if ( M= =0) ACM=N+1;
else if (N= =0) return ACM (M-1,1) ;
else return ACM (M-1 , ACM ( M , N-1));
}
调用语句printf(“%d”,ACM (2,2)) ;

搜索更多相关主题的帖子: 递归 字符 设计 
2006-11-25 22:25
yuqu
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-11-14
收藏
得分:0 
2006-11-26 10:09
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用yuqu在2006-11-26 10:09:50的发言:

楼主到底要我们做的是什么?,程序你不是已经给出来了.


倚天照海花无数,流水高山心自知。
2006-11-29 23:07
快速回复:字符串和递归程序的设计方法??
数据加载中...
 
   



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

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