stack1.cpp
来自「我学习C++ Primer Plus过程中写下的课后作业的编程代码」· C++ 代码 · 共 85 行
CPP
85 行
// 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 + =
减小字号Ctrl + -
显示快捷键?