修改后:另外你的算法还有问题。
#include<iostream>
using namespace std;
const int Maxsize=100;
template<class datatype>
class SeqList
{
public:
SeqList( );
SeqList(datatype a[],int n);
~SeqList(){};
int Length();
datatype Get(int i);
void Insert(int i,datatype item);
datatype Delete(int i);
void display();
private:
datatype data[Maxsize];
int length;
};
template<class datatype>
SeqList<datatype>::SeqList( )
{
length=0; }
template<class datatype>
SeqList<datatype>::SeqList(datatype a[],int n)
{
if(n>Maxsize)throw"表长度n不合法";
for(int i=0;i<n;i++)
data[i]=a[i];
length=n;
}
template<class datatype>
void SeqList<datatype>::Insert(int i,datatype item)
{
int j;
if(length>=Maxsize)throw"表满";
if(i<0||i>length)throw"位置i不合法";
for(j=length;j>=i;j--)
data[j]=data[j-1];
data[i-1]=item;
length++;
}
template<class datatype>
datatype SeqList<datatype>::Delete(int i)
{
int j;
datatype item;
if(length==0)throw"表为空";
if(i<1||i>length)throw"i不合法";
item=data[i-1];
for(j=i;j<=length;j++)
data[j-1]=data[j];
length--;
return item;
}
template<class datatype>
void SeqList<datatype>::display()
{
for(int i=0;i<length;i++)
cout<<data[i]<<" ";
cout<<endl;
}
template<class datatype>
int SeqList<datatype>::Length()
{
return length;
}
template<class datatype>
datatype SeqList<datatype>::Get(int i)
{
if(i<0||i>length)throw"i不合法";
else return data[i-1];
}
void main()
{
int i,j;
int a[5]={1,2,3,4,5};
SeqList<int>myList1(a,5);
myList1.display();
int b[5]={3,4,5,6,7};
SeqList<int>myList2(b,5);
myList2.display();
for(i=0;i<myList1.Length();i++)// length修改为myList1.Length()
for(j=0;j<myList2.Length();j++)// length修改为myList2.Length()
if(myList1.Get(i)==myList2.Get(j))
myList2.Delete(j);//Delete j;修改为 myList2.Delete(j);
for(i=myList1.Length(),j=0;j<=myList2.Length();i++,j++)// length修改为myList1.Length()
myList1.Insert(i,myList2.Get(j));
cout<<"A∪B的结果为:"<<endl;
myList1.display();
}
评论列表(3条)
我是黎想号的签约作者“羊舌春依”
本文概览:修改后:另外你的算法还有问题。#include<iostream>using namespace std;const int Maxsize=100;templat...
文章不错《C++ error C2065- undeclared identifier》内容很有帮助