Post

간단하게 C++ 스택 예제를 만들어보았습니다.

Stack은 먼저 들어온 애가 나중에 나가는 자료구조입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <iostream>
using namespace std;
 
#define MAX_STACK_COUNT 5
 
class Stack
{
    int m_StackData[MAX_STACK_COUNT];
    int m_Top;
public:
    Stack()
    {
        memset(m_StackData, 0sizeof(m_StackData));
        m_Top = 0;
    }
    
    bool Push(int value)
    {
        if(isPull())
            return false;
 
        m_StackData[m_Top] = value;
        ++m_Top;
 
        return true;
    }
    
    bool Pop(int& value)
    {
        if(isEmpty())
            return false;
        
        value = m_StackData[m_Top];
        m_StackData[m_Top] = 0;
        --m_Top;
 
        return true;
    }
    
    bool isEmpty()
    {
        if(0 == m_Top)
            return true;
        
        return false;
    }
 
    bool isPull()
    {
        if(MAX_STACK_COUNT == m_Top)
            return true;
        
        return false;
    }
 
    void Print()
    {
        if(isEmpty())
            return;
 
        for(int i = m_Top - 1; i >= 0--i)
        {
            cout<< m_StackData[i] << endl;    
        } 
    }
};
 
void main()
{
    int data = 0;
    Stack stackData;
    stackData.Push(1);
    stackData.Push(2);    
    stackData.Push(3);
    stackData.Pop(data);    
    stackData.Push(4);
    stackData.Push(5);
    stackData.Print();
    stackData.Push(6);
    stackData.Push(7);
    stackData.Print();
    getchar();
}
cs


▲ top