数据结构习题及答案

源代码在线查看: 2.12.c

软件大小: 52 K
上传用户: GUAIGUAICHENGTI
关键词: 数据结构
下载地址: 免注册下载 普通下载 VIP

相关代码

				◆2.12③ 设A=(a1,…,am)和B=(b1,…,bn)均为有序顺序表,
				A'和B'分别为A和B中除去最大共同前缀后的子表(例如,
				A=(x,y,y,z,x,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'的首元,则AB。试写一个比
				较A和B大小的算法。(注意:在算法中,不要破坏原表A
				和B,也不一定先求得A'和B'才进行比较)。
				
				要求实现下列函数:
				char Compare(SqList A, SqList B);
				/* 比较顺序表A和B,      */
				/*   返回'				/*       '=', 若A=B;    */
				/*       '>', 若A>B     */
				
				顺序表类型定义如下:
				typedef struct {
				    ElemType *elem;
				    int       length;
				    int       listsize;
				} SqList;
				char Compare(SqList A, SqList B)
				// 比较顺序表A和B, 
				//   返回'				//       '=', 若A=B;
				//       '>', 若A>B
				{
				  int i;
				  for(i=0;A.elem[i]||B.elem[i];i++)
				  if(A.elem[i]!=B.elem[i]) 
				   {if(A.elem[i]-B.elem[i]>0) return '>';
				    else return '				  return '=';
				}			

相关资源