class stack
{
private:
int stackTopIndex;
int *stackBase;
int size;
public:
stack(int num)
{
if (num>=1)
{
size=num;
stackBase=new int[size];
stackTopIndex=-1;
}
else
{
stackBase=NULL; //典型的空栈模式
stackTopIndex=-1;
size=0;
}
};
~stack()
{
if (stackBase!=NULL)
{
delete []stackBase;
}
};
bool push(int data)
{ //0-size-1
if (stackTopIndex<size-1)
{
stackTopIndex++;
stackBase[stackTopIndex]=data;
return true;
}
cout<<"Error:Full of Stack"<<endl;
return false;
};
bool pop(int &data)
{
if (stackTopIndex>=0)
{
data=stackBase[stackTopIndex];
stackTopIndex--;
return true;
}
cout<<"Pop Error:Empty Stack"<<endl;
return false;
};
void print()
{
for (int i=0;i<=stackTopIndex;i++)
{
cout<<stackBase[i]<<"\t";
}
};
void clear()
{
stackTopIndex=-1;
}
};
数据结构基础(一)栈的实现
最新推荐文章于 2023-03-26 14:15:23 发布