2012年统考真题,题目如下:
代码如下:
#include <iostream>
#include <cstdlib>
using namespace std;
#define max 50
#define Elemtype char
typedef struct Linklist
{
Elemtype data;
struct Linklist *next;
}Linklist;
typedef struct Array
{
Elemtype num[max];
int length=0;
};
Linklist *Init(Linklist *L,Array array)
{
L=(Linklist *)malloc(sizeof(struct Linklist));
Linklist *p=L;
Linklist *q;
for(int i=0;i<array.length;i++)
{
q=(Linklist *)malloc(sizeof(Linklist));
q->data=array.num[i];
p->next=q;
p=q;
}
q->next=NULL;
return L;
}
void Out(Linklist *L)
{
struct Linklist *q=L->next;
cout<<"输出"<<endl;
while(q!=NULL)
{
cout<<q->data<<endl;
q=q->next;
}
cout<<endl;
}
void Search_same(Linklist *L1,Linklist *L2,Array array1,Array array2)
{
Linklist *p=L1->next;
Linklist *q=L2->next;
int length;
if(array1.length>array2.length)
{
length=array1.length-array2.length;
while(length--&&p!=NULL)
{
p=p->next;
}
}
else
{
length=array2.length-array1.length;
while(length--&&q!=NULL)
{
q=q->next;
}
}
while(p!=NULL&&q!=NULL&&p->data!=q->data)
{
p=p->next;
q=q->next;
}
cout<<"后缀开始"<<q->data<<endl;
}
int main()
{
cout<<"输入数据"<<endl;
int N1;
Elemtype num;
cin>>N1;
struct Linklist *L1;
struct Array array1;
for(int i=0;i<N1;i++)
{
cin>>num;
array1.num[i]=num;
array1.length++;
}
L1=Init(L1,array1);
cout<<"输入数据"<<endl;
int N2;
cin>>N2;
struct Linklist *L2;
struct Array array2;
for(int i=0;i<N2;i++)
{
cin>>num;
array2.num[i]=num;
array2.length++;
}
L2=Init(L2,array2);
Search_same(L1,L2,array1,array2);
// Out(L1);
// Out(L2);
}
结果如下:
明天见!!