스택과 큐 동영상강의
면접질문: Stack과 Queue의 사용처, 차이
C++와는 사용법이 살짝 다르다
예시: ctrl+z, 롤에코 시간역행
키워드: Push(추가), Pop(삭제), Peek(반환), Any(값존재확인)
class Program
{
static void Main(string[] args)
{
//###3. stack (FILO)
//면접질문: Stack과 Queue의 사용처, 차이
//Stack -> ctrl+z 되돌리기 기능
//Push(추가), Pop(삭제), Peek(반환), Any(값존재확인)
Stack<char> keyInputs = new Stack<char>();
keyInputs.Push('a');
keyInputs.Push('d');
keyInputs.Push('f');
char peek = keyInputs.Peek(); //맨뒤에 요소 확인 //c++의 .top(), peek: f
char corn = keyInputs.Pop(); //맨뒤의 요소를 빼고 corn에 반환, corn: f
bool isExist = keyInputs.Any(); //요소가 하나라도 존재하면 true반환, isExist : true
while (keyInputs.Count != 0) //전체 빼기
{
Console.WriteLine(keyInputs.Pop()); //d a
}
Console.WriteLine("-----구분선-----");
}
}
예시 : 줄서기,커맨드, 롤매칭,RTS건물생산,자판기,턴제, 매크로,스킬예약
키워드 : Enqueue(추가), Dequeue(삭제), Peek(반환), Any(값존재확인)
class Program
{
static void Main(string[] args)
{
Queue<char> keyInputs2 = new Queue<char>();
keyInputs2.Enqueue('a'); //데이터 추가
keyInputs2.Enqueue('d');
keyInputs2.Enqueue('f');
//while(keyInputs2.Count != 0) //Any와 같은 기능
while (keyInputs2.Any())
{
Console.WriteLine(keyInputs2.Dequeue()); //a d f
}
}
}