PTA 7 - 1 순서 표 작성 및 옮 겨 다 니 기 (30 분)

13988 단어 데이터 구조
PTA 7 - 1 순서 표 작성 및 옮 겨 다 니 기 (30 분)
#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<
}

좋은 웹페이지 즐겨찾기