✨ 공부 기록/알고리즘

[자료구조] chapter 5. Linked Structures : stack(C++ 구현)

LaonMoon 2022. 10. 14. 11:36

[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;
    }
}