数据结构复习全析 第二章 强化训练 12
设 A=(a1,a2,…,am)和B=(b1,b2,…,bm)均为顺序表,
A’和B’分别是A和B中除去最大共同前缀后的子表,
若 A’=B’=空表,则A=B;
若 A’=空表,而B’!=空表
或者
A’!=空表,B’!=空表,并且A’的首元小于B’的首元,则A<B;
否则,A>B
试写一个比较A,B大小的算法
(在算法中,不要破坏原表A和B,并且,也不一定先求得A’,B’才进行比较)
说明:
A=(x,y,y,z,x,z)
B=(x,y,y,z,y,x,x,z)
A和B的最大公共前缀是(x,y,y,z),
A’=(x,z)
B’=(y,x,x,z)
#include <stdio.h>
#define maxlen 50
#define DATATYPE char
typedef struct{
DATATYPE arr[maxlen];
int length;
}SqList;
int main(int argc, const char * argv[]) {
// insert code here...
int i;
SqList la={
{'a','b','d'},3};
SqList lb={
{'a','b','d'},3};
for(i=0;i<la.length&a