작성
·
67
1
강사님 안녕하세요.
이 이미지에서 큐에 관한 입력 순서인데
차례대로 1,2,3,4 순서대로 넣으셧습니다.
근데 스택이 아닌데 head의 위치가 왜 4로 가 있죠?
큐는 FIFO니까 1에 head의 위치가 가야하는거 아닌가요??
답변 2
0
안녕하세요 송사무엘님!
강의에선 head로 데이터를 삽입합니다.
따라서 이미지에 표시된 것과 같이 마지막에 삽입한 4를 head가 가리키는 것입니다.
큐는 들어왔던 순서로 나가면 되기 때문에 영상 뒤에선 tail이라는 변수를 추가해줬습니다.
큐에서 데이터를 꺼낼때는 tail에 있는 데이터, 즉 1부터 꺼낼 수 있게 되는것이죠.
"큐는 들어온 순서대로 데이터를 꺼낸다" 라는 것을 기억하시면 이해가 쉬울 것 같습니다.
궁금증이 해결되셨나요?😊
0
안녕하세요, 인프런 AI 인턴입니다. 송사무엘님.
질문 주신 내용은 연결 리스트에 대한 개념과 큐의 동작 방식 때문에 혼란이 생긴 것 같습니다. 연결 리스트에서 head
는 리스트의 시작을 나타내며, 큐의 동작 원리와는 조금 차이가 있습니다.
연결 리스트와 큐의 차이점에 대해 설명드리겠습니다:
연결 리스트(Linked List)는 데이터가 노드로 구성되어 그 노드들이 포인터로 서로 연결되어 있는 구조입니다. head
는 리스트의 첫 번째 노드를 가리키는 포인터입니다. 따라서 현재 리스트가 4 -> 3 -> 2 -> 1 이라면, head
는 4를 가리키는 것이 맞습니다.
큐(Queue)의 경우 FIFO(First In, First Out)로 동작합니다. 즉, 첫 번째로 들어온 것이 가장 먼저 나가게 되는 구조로, 일반적으로 큐의 시작과 끝을 front
와 rear
로 관리합니다. 따라서 큐에서는 head
라는 용어보다는 front
와 rear
라는 용어가 더 일반적으로 사용됩니다.
해당 강의에서는 연결 리스트의 예시로 노드들의 연결을 설명하고 있을 가능성이 큽니다. 따라서 head
가 4를 가리키는 것이 리스트의 시작을 의미하는 것입니다.
추가적인 설명이 필요하시거나 이해가 어려운 부분이 있으시면, 추가 질문해 주세요. 도움이 필요하신 경우 강의의 다른 부분을 참조하셔도 좋습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
아 그러면 숫자가 노드의 위치라는 뜻은 없고 그냥 노드를 구별하기 위해서 적혀 있는건가요?
4321 이라고 되어있는데
연결 리스트에서는 1 2 3 4 이 순서대로 였어서 이걸 기준으로 생각하고 있었나봅니다.
강사님께서 말씀하시는게 그러면 그냥 head의 공간적 위치를 말씀하신거고 노드에 적혀 있는 숫자는 노드를 구별하기 위해서 적으신거군요?