스 택 의 순서 저장 구조 - 더 블 스 택
두 창고 의 그림:
BothStack.h
const int StackSize=100; //100 ,
template
class BothStack
{
public:
BothStack( ) {top1= -1; top2=StackSize;} // ,
~BothStack( ) { } //
void Push(int i, T x); // x i
T Pop(int i); // i
T GetTop(int i); // i
bool Empty(int i); // i
private:
T data[StackSize]; //
int top1, top2; // ,
};
#endif
BothStack.cpp
//BothStack.cpp
#include "BothStack.h"
/*
* :
* :
* :
* :
* :
*/
template
BothStack::BothStack( )
{
top1= -1;
top2=StackSize;
}
/*
* :
* :
* :
* :
* :
*/
template
BothStack::~BothStack( )
{
}
/*
* :
* : i, x
* : i x
* : ,
* : , i
*/
template
void BothStack::Push(int i, T x )
{
if (top1==top2-1)
throw " ";
if (i==1)
data[++top1]=x;
if (i==2)
data[--top2]=x;
}
/*
* :
* : i
* : i
* : ,
* : , i
*/
template
T BothStack::Pop(int i)
{
if (i==1) // 1
{
if (top1== -1)
throw " ";
return data[top1--];
}
if (i==2) // 2
{
if (top2==StackSize)
throw " ";
return data[top2++];
}
}
/*
* :
* : i
* : i
* : i , i
* :
*/
template
T BothStack::GetTop(int i)
{
if(i==1)
{
if (top1!=-1)
return data[top1];
}
if(i==2)
{
if(top2!=StackSize)
return data[top2];
}
}
/*
* :
* : i
* : i
* : i , 1; 0
* :
*/
template
bool BothStack::Empty(int i)
{
if(i==1)
{
if(top1==-1)
return 0;
else
return 1;
}
if(i==2)
{
if(top2==StackSize)
return 0;
else
return 1;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.