顺序表比较

题目

问题描述 】设 A= a 1 ,...a n B= b 1 ,...b n 均为顺序表, A' B' 分别为 A B 中除去最大共同前缀后的子表。若A'=B'= 空表,则 A=B ;若 A'= 空表,而 B' ≠空表,或者两者均不为空表,且 A'的首元小于 B' 的首元,则 A ;否则 A>B 。试写一个比较 A B 大小的算法。
【输入形式】输入A、B两表的整数序列,整数之间用“,”号分开。
【输出形式】A>B输出1;A=B输出0;A
【样例输入】
        5 //该行为A表元素个数
        2,3,4,10,15 //该行为A表数据
        6  //该行为A表元素个数
        2,3,4,21,12,27  //该行为A表数据
【样例输出】-1  //(表示A
【样例说明】输入样例中,去掉前缀2,3,4 表A'为(10,15),表B'为(21,12,27)
#include 
#include 
#define Maxsize 100

typedef struct SeqList
{
	int data[Maxsize];
	int length;
 }SeqList;
 

void CreatList(SeqList *L,int n,int a[])
{	L->length = 0;
	for(int i=0;idata[i]=a[i];
		L->length++;
	}
}


void CompareList(SeqList *La,SeqList *Lb)
{
	int i=0;
	while(ilength&&ilength)
	{
		if(La->data[i]==Lb->data[i])
			i++;
		else
			break;		
	}
	for(int j=0;jlength -i;j++)
	{
		La->data[j]=La->data[j+i];
	}
	La->length=La->length-i;
	
	for(int j=0;jlength -i;j++)
	{
		Lb->data[j]=Lb->data[j+i];
	}
	Lb->length=Lb->length-i;
	
}

int ResultList(SeqList La,SeqList Lb)
{
	if(La.length==Lb.length&&La.length==0)
		return 0;
	else if(La.length==0&&Lb.length!=0)
		return -1;
	else if(Lb.length!=0&&La.length!=0)
	{
		if(La.data[0]

int main()
{
	SeqList A,B;
	int a[100];
	int b[100];
	int n1,n2;
	scanf("%d",&n1);
	for(int i=0;i

你可能感兴趣的:(#数据结构习题,算法,数据结构,c#,链表,c语言)