Stack

less than 1 minute read

Stack

선입 후출인 자료구조(LIFO - Last In First Out)

특징

  1. 특정 사이즈의 배열을 정해놓는다.
  2. 커서의 위치처럼 top이라는 변수를 둔다.
  3. top의 초기 값은 보통 -1이다.
  4. push 값 넣기 : top ++
  5. pop 값 빼기 : top –
  6. 배열 출력하기

포인터, 배열은 어느 위치(주소)를 가리키고 있는가가 중요

스택 사용 예

참고 블로그

코드

```c
#include <stdio.h>
#define STACK_SIZE 5

int stack[STACK_SIZE];
int top = -1;

void push(int num) {
	if (top >= STACK_SIZE - 1) {
		printf("overflow\n");
		return;
	}
	else {
		top = top + 1;
		printf("top = %d\n", top);
		stack[top] = num;
	}
}

int pop() {
	if (top <= -1) {
		printf("underflow\n");
		return -1;
	}
	else {
		printf("꺼낸  : %d\n", stack[top]);
		top--;
	}

	return 0;
}

void printStack(int* array) {
	printf("------\n");
	for (int i = 0; i <= top; i++)
	{	
		printf("%d\n", array[i]);
	}
	printf("------\n");

}

int main() {
	
	//printf("숫자를 입력해주세요 : ");
	//scanf_s("%d", &insertNUM);
	//push(insertNUM);
	push(10);
	push(20);
	push(30);
	push(40);
	push(50);
	push(60);   // overflow

	int pop_count = 6;  // 6번째 underflow
	for (int i = 0; i < pop_count; i++)
	{
		pop();
	}

	printStack(stack);

	return 0;
}

```


Go to top

Tags:

Categories:

Updated:

Leave a comment