登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

秒大刀 博客

好好学习 天天向上

 
 
 

日志

 
 
 
 

串的比较  

2006-02-23 22:06:21|  分类: C/C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

//2_12
/*
问题描述:
设A=(a1,.... am)和B=(b1,.... bn)均为顺序表,A'和b'分别为A和B
中除去最大共同前缀的子表(例如:A=(x,y,y,z),B=(x,y,y,z,y,x,x,z),
则两者中最大的共同前缀为(x,y,y,z),在两表中除去最大共同前缀后的子表分别为:
A'=(x,z)B'=(y,x,x,z)。若A'=B'=空表,则A=B;若A'=空表,而B'!=空表,或者
两者均不为空表,且A'的首元小于B'的首元,则A<B,否则A>B。)
试写一个比较AB的算法。
*/
//完成日期:2005/3/6
//作者:杨明哲
#include<iostream>
using namespace std;

typedef char* pArray;

int compare(pArray pa,unsigned a_len,pArray pb,unsigned b_len)
{
for(int i(0);i<a_len&&i<b_len;++i)
{
if(pa[i]==pb[i])
continue;
else if(pa[i]>pb[i])
{
return 1;//A>B
}
else//pa[i]<pb[i]
return -1;//A<B
}
if(i<a_len)
{
return 1;//A>B
}
else if(i<b_len)
{
return -1;//A<B
}
else
return 0;//A==B
}
//以下为测试代码
int main()
{
char a[]="bbbb";
char b[]="bbbbb";
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
switch(compare(a,strlen(a),b,strlen(b)))
{
case 1:
cout<<"a>b"<<endl;
break;
case 0:
cout<<"a=b"<<endl;
break;
case -1:
cout<<"a<b"<<endl;
break;
default:
cout<<"不可预料错误"<<endl;
}
return 0;
}

  评论这张
 
阅读(755)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018