C언어에서 스택과 큐의 차이가 뭔가요?
안녕하세요. C언어에서 스택과 큐의 차이가 어떻게 되는지 궁금합니다.
그리고 이러한 기능들을 토대로 각각 어느곳에 적용을 할 수 있는지 예시도 좀 알려주시면 감사하겠습니다.
전문가 분들 좋은답변 부탁드립니다.
안녕하세요~
우선 스택과 큐는 C언어에만 적용되는 것이 아니라 통상적으로 사용되는 자료구조 라는 것을 먼저 알아두시면 좋을 것 같습니다.
스택은 FILO(First In Last Out)이고 큐는 FIFO(First In First Out)입니다. 이 단어에서 볼 수 있듯이 스택은 먼저 들어간 데이터가 나중에 나오게되고 큐는 먼저 들어간 데이터가 먼저 나오는게 큐입니다.
일상 생활의 예로 들면 스택은 코딩의 재귀함수 또는 일상생활에서 책상에 책을 쌓는 방식이고 큐는 병원의 대기 순번이라고 생각하시면 됩니다.
재귀함수의 경우 먼저 실행된 함수가 가장 늦게 종료되고 책상에 책을 수직으로 쌓았다면 가장 첫번째로 쌓은 책이 마지막에 빠지고 가장 마지막에 쌓은 책이 첫번째로 빠질 수 있겠죠? 이것이 바로 스택입니다.
큐는 대기 순번을 먼저 받은 사람이 먼저 진료를 받을 수 있는 방식입니다.
만약 큐를 이용하지 않는다면 대기번호 1번인 사람이 10번인 사람보다 늦게 진료를 받게되는 경우가 발생합니다.
충분한 설명이 되었을지 모르겠네요ㅎㅎ
그럼 감사합니다.
안녕하세요~! 아하(Aha) 지식답변자 다라닝입니다.
질문하신 내용에 대하여 아래와 같이 답변 드립니다.
스택은 한쪽 끝에서만 자료를 넣고 뺄수있는 구조이고큐는 먼저 넣은 데이터가 먼저 나오는 구조입니다
스택의경우 문서 작업의 실행취소 같은 역추적에 활용되며
큐는 순차적으로 데이터를 처리할때 활용됩니다
부족하지만 도움이 되셨기를 바라며 추가적인 문의가 필요하시면 답변 부탁드려요!스택과 큐는 C언어 뿐만 아니라 많은 곳에서 사용이 되는 자료구조 입니다.
스택의 경우 처음 입력한 데이터가 마지막에 나오는 데이터 구조 입니다.
웹 브라우저에서 뒤로 가기 같은 기능에 사용할 수 있습니다.
페이지가 이동할때마다 스택에 주소를 저장하고 뒤로가기를 누르면 마지막에 있는 데이터를 가져오는 방법입니다.
큐는 처음 입력한 데이터가 처음 나오는 구조 입니다.
게임 같은 곳에서 접속에 순번이 있는 경우 쓰면 좋은 구조 입니다.
먼저 대기하고 있다면 자리가 나올때마다 큐에서 데이터를 빼오게되면 가장 먼저 대기한 사람이 나오게 됩니다.
응용방법은 굉장히 많은 것으로 알고 있습니다.
특히나 알고리즘을 공부하게 된다면 거의 필수적으로 사용되는 가장 기본적인 자료구조 입니다.
스택과 큐는 컴퓨터공학에서 필수로 알아야 할 지식이며 알게모르게 많이 사용됩니다. 어떤 곳에 적용한다라는 개념보다는 홈페이지나 데이터 처리를 위한 자료구조를 설계할 때 많이 사용합니다.