您的位置:首页 > 其它

动态数组的实现

2016-11-23 21:05 337 查看

ArraysTest.h

#ifndef ARRAYSTEST_H_INCLUDED
#define ARRAYSTEST_H_INCLUDED
class ArraysTest
{
public:
ArraysTest(int capaCity);
virtual ~ArraysTest();
int getsize(int arrSize);
bool isEmpty();
bool push_Back(int elements)const;
int At(int i);
bool insert(int i,int elements)const;
int pop_Back();
bool delete1(int i);
int remove1(int &elements);
bool resize();
private:
int A_arrSize;
int A_arrCapacity;
int *A_arrays;
int A_Head=0;
int A_Tail=0;

};
#endif // ARRAYSTEST_H_INCLUDED


ArraysTest.cpp

#include "ArraysTest.h"

#include <iostream>
#include <stdlib.h>
using namespace std;

ArraysTest::ArraysTest(int capaCity)
{
A_arrCapacity=capaCity;
A_arrays=new int[A_arrCapacity];
}
ArraysTest::~ArraysTest()
{
delete[]=A_arrays;
A_arrays=NULL;
}
bool ArraysTest::isEmpty()
{
if(A_arrSize==0)
return true;
else return false;
}
bool ArraysTest::push_Back(int elements)const
{
if(getSize()==capaCity)
reSize();
A_arrays[A_Head]=elements;
A_Head++;
return true;
}
int ArraysTest::getsize()
{
return A_arrSize;
}
int ArraysTest::At(int i)
{
if(i<0||i>getSize())
cout<<"超过取值范围"<<endl;
else
return A_arrays[i];

}
bool ArraysTest::insert(int i,int elements)const
{
if(i<0||i>=A_arrCapacity-1)
return false;
else
for(int j=i;j<A_arrCapacity-2;j++)
A_arrays[j+1]=A_arrays[j];
A_arrays[i]=elements;
A_arrSize++;
return true;
}
int ArraysTest::pop_Back()
{
int a=A_arrays[A_Head];
delete A_arrays[A_Head];
A_Head--;
return a;
}
bool ArraysTest::delete1(int i)
{

if(i<0||i>=A_arrCapacity)
return false;
else
delete A_arrays[i];
for(int j=i;j<A_arrCapacity;j++)
A_arrays[j]=A_arrays[j+1];
A_arrSize--;
return true;
}
int ArraysTest::remove1(int elements)
{
for(int i=0;i<A_arrSize;i++)
if(A_arrays[i]==elements)
{
delete A_arrays[i];
for(int j=i;j<A_arrCapacity;j++)
A_arrays[j]=A_arrays[j+1];
return i;
}
else
return 0;
}
bool ArraysTest::resize()
{
if(getSize()=A_arrCapacity-1)
{
int *new_Array;
new_Array=new int[A_arrCapacity*2];
for(int i=0;i<A_arrSize;i++)
new_Array[i]=A_arrays[i];
delete[] A_arrays;
for(int i=0;i<A_arrCApacity*2;i++)
A_arrays[i]=new_Array[i];
A_arrCapacity=A_arrCapacity*2;
return true;
}
return false;

}

4000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐