[Linked Stack]
기본 구조는 다음과 같다.
class StackType{
public:
.
.
private:
NodeType* topPtr;
}
Struct NodeType{
ItemType info;
NodeType* next;
}
[Linked Stack : Push 구현]
void StackType::push(ItemType item){
if (IsFull()){
throw FullStack();
}
NodeType* location;
location = new NodeType<char>;
location->info = item;
location->next = topPtr;
topPtr = location;
}
[Linked Stack : Pop 구현]
void StackType::Pop(ItemType& item){
if(IsEmpty()){
throw EmptySTack();
}
NodeType<ItemType>* temp;
temp = topPtr;
item = topPtr->info;
topPtr = topPtr->next;
delete temp;
}
[Linked Stack : Top 구현]
ItemType StackType::Top(){
if(IsEmpty()){
EmptyStack();
}
return topPtr->info;
}
[Linekd Stack : Destructor 구현]
StackType::~StackType(){
NodeType<itemType>* temp;
while(topPtr!=NULL){
temp = topPtr;
topPtr = topPtr->next;
delete temp;
}
}