⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stack1.cpp

📁 我学习C++ Primer Plus过程中写下的课后作业的编程代码
💻 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 + -