#pragma once
#ifndef ___LinkedStack
#define ___LinkedStack
//LinkedStack.h : 연결된 스택 클래스 구현
#include "Node_Student.h" //Node 클래스 포함
class LinkedStack {
Node* top; //헤드 포인터
public:
LinkedStack() { top = NULL; } //생성자
~LinkedStack() { while (!isEmpty()) delete pop(); } //소멸자 - 현재의 연결 리스트에 동적으로 할당한 노드가 하나라도 있으면 모두 동적으로 해제해야 함.
bool isEmpty() { return top == NULL; }
void push(Node* p) {
if (isEmpty()) top = p;
else {
p->setLink(top);
top = p;
}
}
Node* pop() {
if (isEmpty()) return NULL;
Node *p = top;
top = top->getLink();
return p;
}
Node* peek() { return top; }
void display() { //화면에 보기 좋게 출력
printf("[LinkedStack]\n");
for (Node *p = top; p != NULL; p = p->getLink())
p->display();
printf("\n");
}
};
#endif // !___LinkedStack
'Programming > DS SorceCode' 카테고리의 다른 글
LinkedQueue.h : 연결된 큐 클래스 (0) | 2019.03.22 |
---|---|
Node_Int : 연결된 큐를 위한 int형 클래스 (0) | 2019.03.22 |
Node_Student.h : 연결된 스택을 위한 노드 클래스 구현 파일 (0) | 2019.03.22 |
DynamicMemoryAllocation.h : int 형 2차원 배열 동적 할당 함수 (0) | 2019.03.22 |
BankSimulator.h : 은행 시뮬레이션 클래스 (0) | 2019.03.22 |