C# 선형 자료구조 - 스택(Stack)

728x90
  • 스택(Stack)이란

- Stack : 쌓다의 의미

- 후입선출(後入先出) 구조

- LIFO(Last - In - First - Out)

- 휴대폰 앱의 화면 이동 방식 / 브라우저의 뒤로가기 / Ctrl+Z(Undo)

- 스택은 한 번에 한 개의 데이터만 꺼낼 수 있다(하나씩 꺼낸다)

- Push(삽입)와 Pop(삭제)

 

- Push(Data) :  저장공간에 데이터를 집어넣는 행위

스택에 데이터가 꽉 차면 오버플로우(Overflow) 현상이 발생. IsFull() 함수로 확인할 수 있음

 

 

- Pop() : 저장공간에서 데이터를 빼내는 행위, 최상단의 데이터를 가리킴

스택에 데이터가 비게 되면 언더플로우(Underflow) 현상이 발생. IsEmpty() 함수로 확인할 수 있음

 

- Peek() : 스택의 최상단의 값만을 확인함(데이터 삭제 없이), Pee()를 여러번 수행해도 갯수는 변화 없이 값만 확인

class Program
    {        
        static void Main(string[] args)
        {
            Stack<int> stack = new Stack<int>();

            stack.Push(1); //1
            stack.Push(2); //1, 2
            stack.Pop(); //1
            stack.Push(3); //1, 3
            stack.Push(4); //1, 3, 4
            stack.Peek(); //4
            stack.Push(5); //1, 3, 4, 5

            Console.WriteLine("스택의 갯수 : " + stack.Count);

            while(stack.Count > 0)
            {
                Console.WriteLine(stack.Pop());
            }
        }
    }

 

728x90