자료구조_스택

지원·2025년 3월 21일

자료구조

목록 보기
2/11
post-thumbnail

구조체 정의하고 스택을 쌓아 출력해보기

push, pop함수 이용

#include <stdio.h>
#include <stdlib.h>
#define MAX_STACK_SIZE 5
.
//구조체 정의 및 선언하기
typedef int element;
typedef struct {
	element data[MAX_STACK_SIZE];
	int top;
} StackType;

void init_stack(StackType* s) {
	s->top = -1;
}
int is_full(StackType* s) {
	return (s->top == MAX_STACK_SIZE - 1);
}
int is_empty(StackType* s) {
	return s->top == -1;
}
void push(StackType* s, element item) {
	if (is_full(s)) {
		printf("stack overflow\n");
		return;
	}
	else {
		s->data[++(s->top)] = item;
	}
}
element pop(StackType* s) {
	if (is_empty(s)) {
		printf("stack underflow\n");
		exit(1); //stdlib.h
	}
	else return s->data[(s->top)--];
}

int main() {
	StackType s; //구조체 변수 s

	init_stack(&s);
	push(&s, 10); push(&s, 20); push(&s, 30);

	int res = pop(&s);
	printf("pop value => %d\n", res); //30 top은 1
	printf("pop value => %d\n", pop(&s)); //20 top은 0
}

결과

0개의 댓글