Stack 4

[자료구조] 스택과 큐(Stack and Queue) 재귀(Recursion)를 이용한 큐 뒤집기(Queue Reverse) 구현(C 언어)

문제 설명이번 포스트에서는 재귀 함수를 활용하여 큐(Queue)의 원소들을 반전시키는 방법에 대해 알아보겠습니다. 이전에는 스택을 이용한 방법을 살펴보았지만, 이번에는 재귀 호출을 통해 큐의 순서를 뒤집는 방법을 중점적으로 다루겠습니다.정수형 큐가 주어졌을 때, 큐의 원소들을 반전시키는 함수 reverseQueue()를 구현하는 것이 목표입니다. 예를 들어, 큐에 저장된 원소가 (1, 2, 3, 4, 5)라면, 함수를 호출한 후 결과는 (5, 4, 3, 2, 1)이 되어야 합니다.문제 요구사항 입력: 정수형 큐 q​출력: 큐 q의 원소 순서를 반전시킨 상태​제약 조건:큐가 비어있을 경우, 아무 작업도 수행하지 않고 함수를 종료해야 합니다.​큐의 원소들은 정수형이며, 큐는 연결 리스트로 구현되어 있습니다...

자료구조 2025.04.14

[자료구조] 스택과 큐(Stack and Queue) 스택을 이용한 큐 뒤집기(Queue Reverse) 구현(C언어)

문제 설명이번 포스트에서는 스택을 이용하여 큐의 원소들을 뒤집는 문제를 함께 해결해 보겠습니다.문제에서는 정수들이 저장된 큐(Queue)가 주어지고, 이 큐의 순서를 뒤집어야 합니다.예를 들어, 큐에 저장된 원소가 (1, 2, 3, 4, 5)라면, 함수를 호출한 후 결과는 (5, 4, 3, 2, 1)이 되어야 합니다.문제 해결을 위해 우리는 스택(Stack)을 활용하여, 큐에서 원소를 하나씩 꺼내 스택에 저장한 후, 스택에서 다시 꺼내 큐에 삽입하는 방식을 사용할 것입니다.이때, 큐와 스택은 모두 내부적으로 연결 리스트(LinkedList)를 사용하여 구현됩니다.문제 요구사항예외 처리: 만약 큐가 NULL이거나 비어있다면, 반전을 진행하지 않고 그대로 종료합니다.​반전 방식: 스택을 활용하여 큐의 요소들..

자료구조 2025.04.14

[CSAPP] 3-4 정보 접근하기

1. 서론컴퓨터는 데이터를 메모리에 저장하고 필요할 때 꺼내 사용합니다. 마치 사람으로 비유하면 우리가 책상 서랍에 물건을 보관하고 필요할 때 꺼내 쓰는 것처럼 말이죠. 이번 글에서는 데이터를 어떻게 저장하고 불러오는지, 특히 오퍼랜드 식별자, 데이터 이동 명령어, 스택 데이터의 저장과 추출에 대해서 알아보겠습니다. 본론으로 넘어가기 전에, 먼저 레지스터의 종류를 잠깐 살펴보겠습니다레지스터(Register)란? 레지스터는 CPU 내부에 있는 아주 빠른 저장소로, 연산이나 데이터 처리를 위해 가장 자주 사용되는 공간입니다. 아래 그림은 x86-64 아키텍처에서 사용하는 대표적인 레지스터들을 정리한 표입니다.%rax : 계산 결과(리턴 값)를 저장 %rdi, %rsi, %rdx, %rcx, %r8, %r9 ..

CSAPP/3장 2025.04.08

[자료구조] 스택(Stack)과 큐(Queue)

스택(Stack)사전적 의미로는 "쌓아 올리다, 포개지다."입니다. 알고리즘에서도 스택 자료구조도 이 사전적 의미를 따라갑니다. 흔히 예시로 책상에 책을 쌓아둘 때 차곡차곡 쌓아가고, 책을 꺼낼 때는 맨 위(Top)에서부터 하나씩 꺼내서 읽는다.(중간에서 빼는 경우 없다고 가정합니다.)하지만 혹시 프링글스를 아시나요? 감자칩 이거 감자칩 먹을 때 생각하면 편한게 가장 마지막(위)에 있는 걸 먼저 먹지 않나요? 그거 생각하면 편하게 생각할 수 있스습니다. 그리고 감자칩이 아니더라도 다른 것들을 넣을 때 가장 처음에 넣은 것이 가장 마지막에 나오게 될 것입니다.(다른 것은 2개 이상)스택은 감자칩 구조이다.라고 생각하면 좀 더 이해가 편해지실 겁니다.  스택의 특징 스택은 그림에서 말했다 싶이 LIFO(La..

자료구조 2025.03.22