7.12 스택(Stack) 클래스
Stack 클래스는 데이터의 Queue 클래스와 비슷하지만 데이터의 삽입과 추출이 후입선출(Last-In First-Out)이라는 측면에서 그 쓰임새가 다릅니다. 즉, 제일 마지막에 들어간 데이터가 제일 먼저 나오는 메모리 구조를 클래스화한 것입니다. 다음의 Stack 클래스의 프로토타입입니다.
▣ Stack 클래스의 프로토타입 |
□ public class Stack : ICollection, IEnumerable, ICloneable |
데이터를 삽입할 때는 Push() 메서드를 사용하며 데이터를 추출할 때는 Pop() 메서드를 사용합니다. 그리고, 추출할 데이터를 삭제하지 않고 데이터만을 가져 올 때는 Queue와 동일하게 Peek() 메서드를 이용합니다.
▣ Stack 클래스의 특징 |
□ 후입선출(Last-In-First-Out) 컬렉션 클래스 □ Push() 메서드는 Stack의 맨 위에 요소를 삽입 □ Pop() 메서드는 Stack의 맨 위에 있는 요소를 삭제하고 데이터를 반환 □ Peek() 메서드는 Stack의 맨 위에 있는 요소를 제거하지 않고 반환 |
& |
StackTest.cs |
Ü Stack을 테스트하는 예제 |
using System; | ||
C:\C#Example\07>csc StackTest.cs C:\C#Example\07>StackTest 1. Stack의 목록: 7777, World, Hello, Hi, 2. Pop:7777 3. Pop:World 4. Pop을 두번한 후의 목록: Hello, Hi, 5. Peek:Hello |
Stack 객체를 생성한 후 Stack에 4개의 데이터를 삽입합니다. 이 때 사용하는 메서드는 Push() 메서드입니다.
Stack stack= new Stack();
stack.Push("Hi");
stack.Push("Hello");
stack.Push("World");
stack.Push("7777");
삽입한 데이터의 삭제와 추출을 동시에 하는 Pop() 메서드를 이용합니다.
object obj = stack.Pop();
obj = stack.Pop();
Peek() 메서드를 사용하여 데이터의 삭제없이 데이터를 추출하고 있습니다.
obj = stack.Peek();
[출처] [펌] [후다닥편집]컬렉션12 : 스택(Stack) 클래스|작성자 눈꽃천사