반응형
데이터를 리스트에 넣는 방법 중 일반적인 리스트 배열이 아닌 사용 용도에 따라 앞 또는 뒤에서부터 데이터를 사용할 경우가 있습니다. 인덱스로 조회하는 방식에서 앞/뒤에서 데이터를 넣고 빼는 방법은 스택과 큐의 방식을 활용한 프로그램 기법을 사용하여 좀 더 깨끗하고 단순화된 프로그램을 구현할 수 있습니다.
스택(Stack)이란?
LIFO(Last-In-Last-Out)의 구조로 입력한 데이터가 가장 위에 쌓이고, 가장 위에서 데이터를 가져가는 방식이다.
(동전이 쌓인 경우 위에 넣고 위에서 빼는 방법을 가정하면 된다.)
* 사용 함수 *
1. 삽입 : Push
빼낼 데이터 확인 : Peek (stack, queue 같음)
빼냄 : Pop
static void Main(string[] args)
{ Stack<string> stack = new Stack<string>();
stack.Push("1"); // Push: 1 삽입
stack.Push("2"); // Push: 2 삽입
stack.Push("3"); // Push: 3 삽입
stack.Push("4"); // Push: 4 삽입
string peek = stack.Peek(); // Peek: 다음에 빼낼 데이터 '조회'
Console.WriteLine("Peek : " + peek);
Console.WriteLine("stack : " + string.Join(",",stack.ToArray()));
string pop = stack.Pop(); // Pop: 맨 마지막 데이터 '빼냄'
Console.WriteLine("Pop : " + pop);
Console.Write("stack : " + string.Join(",", stack.ToArray()));
}
/* 결과
Peek : 4
stack : 4,3,2,1
Pop : 4
stack : 3,2,1
*/
큐(Queue) 란?
FIFO(First-In-First-Out)의 구조로 입력한 데이터가 순서대로 쌓이고, 가장 처음 입력된 데이터를 가져가는 방식이다.
( 줄 서기처럼 빨리 온 순서대로 처리할 경우 이용한다.)
- 사용 함수
- 삽입 : Enqueue
- 빼낼 데이터 확인 : Peek (stack, queue 같음)
- 빼냄 : Dequeue
static void Main(string[] args)
{
Queue<string> queue = new Queue<string>();
queue.Enqueue("1"); // Enqueue: 1 삽입
queue.Enqueue("2"); // Enqueue: 2 삽입
queue.Enqueue("3"); // Enqueue: 3 삽입
queue.Enqueue("4"); // Enqueue: 4 삽입
string peek = queue.Peek(); // Peek: 다음에 빼낼 데이터 '조회'
Console.WriteLine("Peek : " + peek);
Console.WriteLine("queue : " + string.Join(",", queue.ToArray()));
string pop = queue.Dequeue(); // Dequeue: 맨 처음 데이터 '빼냄'
Console.WriteLine("Pop : " + pop);
Console.Write("queue : " + string.Join(",", queue.ToArray()));
}
/* 결과
Peek : 1
queue : 1,2,3,4
Pop : 1
queue : 2,3,4
*/
참고 사이트
반응형
'프로그래밍 > C Sharp' 카테고리의 다른 글
[ C# ] 엑셀파일 읽기 (0) | 2021.11.09 |
---|---|
[ C# ] 허니웰 스케너 시리얼 통신으로 On/Off 하기 (1) | 2021.11.08 |
[ C# ] 오므론 RFID V608S TCP 통신 하기 (0) | 2021.11.08 |
[ C# ] 배열 생성시 초기값 넣기 (0) | 2021.11.08 |
[ C# ] 그래프 필터링 하기 : 이동 평균 필터(Move Average Filter) (2) | 2021.11.04 |
댓글