
ParleStack::push 메서드는 stack에 데이터를 추가할 때, 다음과 같은 과정을 거칩니다.
1. 메모리 공간을 할당하여 데이터를 저장합니다.
2. 할당된 메모리 공간에 데이터를 삽입합니다.
3. 데이터가 삽입된 메모리 공간의 주소를 저장합니다.
ParleStack::pop 메서드는 stack에서 데이터를 제거할 때, 다음과 같은 과정을 거칩니다.
1. stack의 최상위 데이터의 주소를 가져옵니다.
2. 가져온 주소에 저장된 데이터를 삭제합니다.
3. 삭제된 데이터의 메모리 공간을 해제합니다.
ParleStack::push와 ParleStack::pop 메서드의 차이점은 다음과 같습니다.
- push 메서드는 데이터를 추가하는 반면, pop 메서드는 데이터를 제거합니다.
- push 메서드는 데이터를 저장하는 반면, pop 메서드는 데이터를 삭제합니다.
이 두 메서드를 사용하는 이유는 다음과 같습니다.
- stack을 구현할 때, 데이터를 추가하고 제거하는 과정을 효율적으로 처리하기 위함입니다.
- stack의 데이터를 관리하기 위함입니다.
이 두 메서드를 사용하는 예제는 다음과 같습니다.
#hostingforum.kr
c
#include
#include
typedef struct {
int data;
struct Node* next;
} Node;
typedef struct {
Node* top;
} Stack;
void init(Stack* stack) {
stack->top = NULL;
}
void push(Stack* stack, int data) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->next = stack->top;
stack->top = newNode;
}
int pop(Stack* stack) {
if (stack->top == NULL) {
printf("Stack is emptyn");
return -1;
}
int data = stack->top->data;
Node* temp = stack->top;
stack->top = stack->top->next;
free(temp);
return data;
}
int main() {
Stack stack;
init(&stack);
push(&stack, 10);
push(&stack, 20);
push(&stack, 30);
printf("%dn", pop(&stack)); // 30
printf("%dn", pop(&stack)); // 20
printf("%dn", pop(&stack)); // 10
return 0;
}
이 예제에서는 push 메서드를 사용하여 데이터를 추가하고, pop 메서드를 사용하여 데이터를 제거합니다.
2025-07-07 18:51