C++数据结构路程:第一章,顺序表以供练级

顺序表用C++实现的,简便用了int类型存储,删除方面有点问题,但就这样了,以后在改正,慢慢来

 #include<iostream>
using namespace std;
class Selist
{
   private:
    int m_currentsize;
    int m_maxsize;
    int*m_elements;
   public:
    Selist(int size);
    ~Selist();
    int Length()const;
    int Find(int data)const;
    int Insert(int data,int i);
    int delet(int data); 
    int change(int data,int changedata);
    void Show();

};
int main()
{
    Selist list(20);
 int elements[10]={1,2,3,4,5,6,7,8,9,0};
 for(int i=0;i<10;i++)
 {
 list.Insert(elements[i],0);
 }
 list.change(5,55);
 list.Show();
// list.Show();
// list.Insert(233,4);
// list.Show();
//  list.Find(333);
// cout<<"5"<<list.Find(5)<<endl;
// list.delet(9);
// list.Show();
// list.delet(2);
//list.Show();
 return 0;
}
Selist::Selist(int size)
{
 m_currentsize=-1;
 if(size>0)
 {
    m_maxsize=size;
 }
 m_elements=new int[m_maxsize];
}
Selist::~Selist()
{
 delete[]m_elements;
}
int Selist::Length()const
{
 return m_currentsize+1;
}
int Selist::Find(int data)const
{
 for(int i=0;i<m_maxsize;i++)
 {
  if(m_elements[i]==data)
   return i;
 }
   cout<<"there is no number that you want find"<<endl;
   return -1;
}
int Selist::Insert(int data,int i)
{
 if(i<0||i>m_currentsize+1||m_currentsize==m_maxsize-1)
 {
  cout<<"this operate can not do"<<endl;
  return 0;
 }
 m_currentsize=m_currentsize+1;
 if(m_currentsize==0)
  m_elements[0]=data;
 else
 for(int j=m_currentsize;j>i;j--)
 {
  m_elements[j]=m_elements[j-1];
 }
 m_elements[i]=data;
 return 0;
}
int Selist::delet(int data)
{
 for(int i=0;i<m_maxsize;i++)
 {
  if(m_elements[i]==data)
  {
   for(int j=i;j<m_currentsize;j++)
   {
    m_elements[j]=m_elements[j+1];
   }
  }
   m_currentsize--;
 }
 return 0;
}
int Selist::change(int data,int changedata)
{
 for(int i=0;i<m_maxsize;i++)
  if(m_elements[i]==data)
   m_elements[i]=changedata;
  return 0;
}
void Selist::Show()
{
 for(int i=0;i<m_currentsize;i++)
  cout<<m_elements[i]<<endl;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值