⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2.12.c

📁 数据结构习题及答案
💻 C
字号:
◆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'的首元,则A<B;否则A>B。试写一个比
较A和B大小的算法。(注意:在算法中,不要破坏原表A
和B,也不一定先求得A'和B'才进行比较)。

要求实现下列函数:
char Compare(SqList A, SqList B);
/* 比较顺序表A和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;
//       '>', 若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 '=';
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -