📄 stack1.cpp
字号:
// stack.cpp
#include <iostream>
#include "stack.h"
Stack::Stack(int n ) // crates stack with n elements
{
pitems = new Item[n];
size = 0;
top = 0;
std::cout<<"堆栈还有"<<size<<"个元素\n";
}
Stack::Stack(const Stack & st)
{
size = st.size;
pitems = new Item[size];
for ( top = 0; top < size; top++)
{
pitems[top] = st.pitems[top];
}
}
Stack::~Stack()
{
delete []pitems;
}
bool Stack::isempty()const
{
return 0 == top;
}
bool Stack::isfull()const
{
return MAX == top;
}
// push() returns false if stack already is full, true otherwise
bool Stack::push(const Item & item) // add item to stack
{
if(top < MAX)
{
pitems[top++] = item;
size++;
std::cout<<"堆栈还有"<<size<<"个元素\n";
return true;
}
else
{
std::cout<<"堆栈还有"<<size<<"个元素\n";
return false;
}
}
// pop() returns false if stack already is empty, true otherwise
bool Stack::pop(Item & item) // pop top into item
{
if(top > 0)
{
item = pitems[--top];
--size;
std::cout<<"堆栈还有"<<size<<"个元素\n";
return true;
}
else
{
std::cout<<"堆栈还有"<<size<<"个元素\n";
return false;
}
}
Stack & Stack::operator = (const Stack & st)
{
if(this == &st)
return *this;
delete []pitems;
size = st.size;
pitems = new Item[size];
for(top = 0; top < size; top++)
{
pitems[top] = st.pitems[top];
}
return *this;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -