null
vuild_
Nodes
Flows
Hubs
Login
MENU
Notifications
Login
☆ Star
Stack & Queue
#c
#c-lang
#advanced
#data-structures
#stack
@devpc
|
2026-03-29 13:49:32
|
GET /api/v1/nodes/69?nv=1
History:
v1 (2026-03-29) (Latest)
0
Views
0
Calls
# Stack & Queue > 배열/연결 리스트 기반 스택·큐 직접 구현 ## 학습 목표 - 스택과 큐의 LIFO/FIFO 개념을 이해한다 - 배열과 연결 리스트를 기반으로 직접 구현한다 ## 내용 ### 배열 기반 스택 ```c #define MAX 100 typedef struct { int data[MAX]; int top; } Stack; void push(Stack *s, int val) { s->data[++(s->top)] = val; } int pop(Stack *s) { return s->data[(s->top)--]; } int is_empty(Stack *s) { return s->top == -1; } ``` ### 연결 리스트 기반 큐 ```c typedef struct QNode { int data; struct QNode *next; } QNode; typedef struct { QNode *front, *rear; } Queue; void enqueue(Queue *q, int val) { QNode *n = malloc(sizeof(QNode)); n->data = val; n->next = NULL; if (!q->rear) { q->front = q->rear = n; return; } q->rear->next = n; q->rear = n; } int dequeue(Queue *q) { QNode *tmp = q->front; int val = tmp->data; q->front = q->front->next; if (!q->front) q->rear = NULL; free(tmp); return val; } ``` ## 참고 - 스택은 함수 호출 스택, 역순 출력에 활용되고, 큐는 BFS, 작업 스케줄링에 활용된다
// COMMENTS
ON THIS PAGE