#include<iostream>
#include"DXSH.h"
using namespace std;
int main()
{
LinkList LA,LB;
int textA1[]={4,7,10,18,21,40,56};
int textA2[]={6,-3,-3,2,5,-1,-5};
int textB1[]={7,9,18,21,40,68,70,100};
int textB2[]={3,1,-2,-2,1,5,1,1};
int lena1=sizeof(textA1)/sizeof(textA1[0]);//求出一维数组长度语句一
int lena2=sizeof(textA2)/sizeof(int);//求出一维数组长度语句二
int lenb1=sizeof(textB1)/sizeof(textB1[0]);//求出一维数组长度语句一
int lenb2=sizeof(textB2)/sizeof(int);//求出一维数组长度语句二
if(lena1!=lena2||lenb1!=lenb2) cout<<"error"<<endl;
//LB=Create_L(text1,text2,lena1);
int *A1=new int[lena1];//相比之下A1,A2是动态分配内存
int *A2=new int[lena2];
int *B1=new int[lenb1];//相比之下B1,B2是动态分配内存
int *B2=new int[lenb2];
for(int i=0;i<=lena1-1;i )
{
A1[i]=textA1[i];
A2[i]=textA2[i];
}
for(int i=0;i<=lenb1-1;i )
{
B1[i]=textB1[i];
B2[i]=textB2[i];
}
LA=Create_L(A1,A2,lena1);
LB=Create_L(B1,B2,lenb1);
cout<<"带头结点的循环有序表A(第一行为次数,第二行为系数):"<<endl;
Traverse_L(LA);
cout<<"带头结点的循环有序表B(第一行为次数,第二行为系数):"<<endl;
Traverse_L(LB);
//实现两个带头结点的循环有序链表的并,同时合并同类项
Union_OL(LA,LB);
cout<<"完成第一步合并同类项的运算之后:"<<endl;
Traverse_L(LA);
//剔除系数为零的项
int t;
t=Locate_OL(LA);//若LA->data2中无0,则返回t=0
//cout<<"\n"<<t<<endl;
while(t)
{
Delete_OL(LA);
t=Locate_OL(LA);
//cout<<"\n"<<t<<"\n";
}
cout<<"完成第二步剔除系数为零的运算之后:"<<endl;
Traverse_L(LA);
}
评论