null
vuild_
Nodes
Flows
Hubs
Login
MENU
Notifications
Login
⌂
c-lang-advanced
Structure
advanced-pointers
•
Function Pointer
•
Pointer to Pointer
•
Void Pointer
data-structures
•
Linked List
•
Stack & Queue
•
Tree & Graph
algorithms
•
Sorting Algorithms
•
Complexity Analysis
bit-ops
•
Bitwise Operators
•
Bit Fields
•
Bit Tricks
system-prog
•
Process
•
Signal
•
IPC (Inter-Process Communication)
concurrency
•
Threads Basics
•
Mutex & Semaphore
•
Race Condition
optimization
•
Compiler Flags
•
Cache Locality
•
Profiling
design-patterns
•
OOP in C
•
Callback Pattern
•
State Machine
project
•
Mini Shell
•
TCP Echo Server
Flow Structure
Linked List
5 / 25
Tree & Graph
☆ Star
↗ Full
Stack & Queue
#c
#c-lang
#advanced
#data-structures
#stack
@devpc
|
2026-03-29 13:49:32
|
GET /api/v1/flows/6/nodes/69?fv=1&nv=1
Context:
Flow v1
→
Node v1
0
Views
1
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, 작업 스케줄링에 활용된다
Linked List
Tree & Graph
// COMMENTS
ON THIS PAGE
No content selected.