Stack 클래스 템 플 릿
3588 단어 데이터 구조
//-------------DStackT.h----------------
#include
#ifndef DSTACK
#define DSTACK
template
class Stack
{
public:
Stack(int numElements=128);
Stack(const Stack & original);
~Stack();
const Stack & operator=(const Stack &rightHandSide);
bool empty() const;
void push(const StackElement & value);
void display(ostream & out) const;
StackElement top() const;
void pop();
private:
int myTop;
int myCapacity;
StackElement *myArray;
};
#include
#include
template
Stack::Stack(int numElements)
{
assert(numElements>0);
myCapacity=numElements;
myArray=new (nothrow) StackElement[myCapacity];
if(myArray!=0)
myTop=-1;
else
{
cout<
Stack::Stack(const Stack & original)
:myCapacity(original.myCapacity),myTop(original.myTop)
{
myArray=new (nothrow) StackElement[myCapacity];
if(myArray!=0)
for(int pos=0;pos<=myTop;pos++)
myArray[pos]=original.myArray[pos];
else
{
cerr<
Stack::~Stack()
{
delete [] myArray;
}
template
const Stack & Stack::operator=(const Stack & rightHandSide)
{
if(this!=&rightHandSide)
{
if(myCapacity!=rightHandSide.myCapacity)
{
delete [] myArray;
myCapacity=rightHandSide.myCapacity;
myArray=new (nothrow) StackElement[myCapacity];
if(myArray==0)
{
cerr<
bool Stack::empty() const
{
return (myTop==-1);
}
template
void Stack::push(const StackElement & value)
{
if(myTop
void Stack::display(ostream & out) const
{
for(int i=myTop;i>=0;i--)
out<
inline ostream & operator<& st)
{
st.display(out);
return out;
}
template
StackElement Stack::top() const
{
if(!empty())
{
return (myArray[myTop]);
}
else
{
cerr<
void Stack::pop()
{
if(!empty())
myTop--;
else
cerr<
//-------------DStackT_main.cpp---------------------
#include
#include
using namespace std;
#include"DStackT.h"
template
void print(Stack st)
{ st.display(cout); }
int main()
{
int cap;
cout<>cap;
Stack intSt;
Stack charSt;
for(int i=1;i<=4;i++)
intSt.push(100*i);
cout<t;
t=intSt;
cout<
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.