PTA 7 - 1 순서 표 작성 및 옮 겨 다 니 기 (30 분)
13988 단어 데이터 구조
#include
#include
#include
#include
using namespace std;
typedef int T;
const int defaultSize = 100;
class SeqList
{
private:
T* data;//
int maxSize;//
int last;//
void Resize(int newSize)
{
maxSize=newSize;
}
public:
SeqList(int sz=defaultSize)//
{
last=-1;
data=new T[sz];
maxSize=defaultSize;
}
SeqList(const SeqList& L)//
{
maxSize=L.maxSize;
last=L.last;
for(int i=0;i<last;i++)
{
data[i]=L.data[i];
}
}
SeqList& operator=(const SeqList& L)//
{
maxSize=L.maxSize;
last=L.last;
for(int i=0;i<last;i++)
{
data[i]=L.data[i];
}
return *this;
}
~SeqList()//
{
delete []data;
last=0;
}
/* virtual int Size() const//
{
return maxSize;
}
virtual int Length() const//
{
return last+1;
}
virtual int Search(T & x) const// x
{
for(int i=0;i<=last;i++)
{
if(data[i]==x)
{
return i+1;
}
}
return 0;
}
virtual int Locate(int i) const// i
{
if(i>last+1)
return false;
return true;
}
virtual bool GetData(int i, T& x) const// i
{
if(Locate(i-1))
{
x=data[i-1];
return true;
}
return false;
}
virtual void SetData(int i, T& x)// i x
{
if(Locate(i-1))
{
data[i-1]=x;
}
}
virtual bool IsEmpty() const//
{
return last==0;
}
virtual bool IsFull() const//
{
return last==maxSize;
}
virtual bool Insert(int i, const T& x) // i x
{
if(i<=last+2)
{
int j;
for( j=last+1;j>=i;j--)
{
data[j]=data[j-1];
}
data[j]=x;
last++;
return true;
}
return false;
}
virtual bool Remove(int i, T&x) // i
{
if(Locate(i))
{
for(int j=i-1;jdata[j])
{
T temp;
temp=data[i];
data[i]=data[j];
data[j]=temp;
}
}
}
}*/
friend istream& operator>>(istream& in, SeqList & L)//
{
int i,num;
in>>num;
if(num<0) L.last=-1;
L.last=num-1;
for(i=0;i<=L.last;i++)
{
in>>L.data[i];
}
return in;
}
friend ostream& operator<<(ostream& out, const SeqList& L)//
{
int i;
for(i=0;i<=L.last;i++)
{
if(i==L.last)
{
out<<L.data[i];
}
else
out<<L.data[i]<<" ";
}
return out;
}
/* void Reverse ()//
{
for(int i=0;i<=last/2;i++)
{
int temp;
temp=data[i];
data[i]=data[last-i];
data[last-i]=temp;
}
}*/
};
int main()
{
SeqList sList;
cin>>sList;
/* int i, val;
cin>>i>>val;
sList.Insert(i,val);*/
cout<<sList;
/* cin>>i;
sList.Remove(i,val);
cout<>val;
i=sList.Search(val);
if(i==0)
cout<
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.