본문 바로가기
c#/수업 내용

stack 클래스 정의와 기본 문제

by 이지훈26 2021. 9. 2.

Stack 클래스

*push -> 개체를 stack에 맨 위에 삽입한다
*peek -> 개체를 제거하지 않고 반환
*pop  -> 개체를 제거하고 반환
*clear -> 개체를 모두 제거

네임 스페이스 : system.Collections
IEnumrable 구현 한다
(foreach사용 가능)
컬렉션 사용 전 반드시 초기화 해야 한다
Stack stack = new Stack();

주요 속성
count : stack에 포함돼 요소 수를 가져온다

주요메서드
Push(Object) : 개체를 stack의 맨위에 삽입한다

pop() : stack의 맨위에 개체를 제거하고 반환한다
예외 : stack이 비어있는 경우 (InvalidOperationException)

Peek() : 스택의 맨 위에서 개체를 제거하지 않고 반환한다 
예외 : Stack이 비어있는 경우 (InvalidOperationException)

Clear() : 스택의 요소를 모두 제거한다 

----------------------------------------------------------------------------------------------------------------------

using Hellowrold;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static void Main(string[] args)
    {
        //스택 변수 선언
        Stack stack;

        //스택 인스턴스 생성
        stack = new Stack();

        //데이터를 삽입
        stack.Push(1);
        stack.Push(1.2f);
        stack.Push(true);
        stack.Push("A");
        stack.Push("이지훈");
        stack.Push(null);
        stack.Push(new Item());
        Console.WriteLine("count: {0}", stack.Count);

        object element = stack.Pop();
        Console.WriteLine("elemant: {0}", element);
        Console.WriteLine("count: {0}", stack.Count);

        element = stack.Peek();
        Console.WriteLine("elemant: {0}", element);
        Console.WriteLine("count: {0}", stack.Count);

        foreach (object obj in stack)
        {
            Console.WriteLine("obj: {0}", obj);
        }

        stack.Clear();
        Console.WriteLine("count: {0}", stack.Count);

        //stack에 요소가 0일 경우 
        //stack.Pop();  //System.InvalidOperationException: 스택이 비어 있습니다.
        //stack.Peek(); //System.InvalidOperationException: 스택이 비어 있습니다.



    }
}

'c# > 수업 내용' 카테고리의 다른 글

Hachtable 클래스와 기본 문제  (0) 2021.09.02
Queue 클래스 기본 문제  (0) 2021.09.02
ArrayList로 인벤토리 만들기 (해석해보고 하는중)  (0) 2021.09.02
ArrayList 클래스 (ADD)  (0) 2021.09.02
c# 컬렉션  (0) 2021.09.02