stack_array.c 코드입니다.
#include "stack_array.h"
// --------------------------------------------------------------------
// 변경 금지
// --------------------------------------------------------------------
// 스택 초기화
void stack_init_as(Array_Stack* stack)
{
stack->top = 0;
}
// --------------------------------------------------------------------
/*
* 구현시 유의사항
* 1. 함수명과 매개변수는 수정하시지 마세요.
* 2. 반환값 정확하게 구현해주세요. (bool, int)
*/
// --------------------------------------------------------------------
// 기초 스택 구현 - 모두 구현 B
// --------------------------------------------------------------------
// 스택이 비어있는지 확인, true/false 반환
bool is_empty_as(Array_Stack* stack)
{
if(stack.top == 0){
return true;
}
return false;
}
/*
* 스택이 가득찼는지 확인, true/false 반환
* 스택의 최대 원소의 개수는 MAX_STACK_SIZE
*/
bool is_full_as(Array_Stack* stack)
{
if(Array_Stack.top = Array_Stack.array[MAX_STACK_SIZE]){
return true;
}
return false;
}
// 스택에 원소 삽입
void push_as(Array_Stack* stack, int data)
{
if(!is_full_as()){
Array_Stack.top++;
Array_Stack* stack[Array_Stack.top] = data;
}
}
// 스택의 최상위 원소(top)를 삭제하고 반환
int pop_as(Array_Stack* stack)
{
if(!is_empty_as()){
Array_Stack* stack temp = Array_stack* stack[Array_Stack.top];
Array_Stack.top--;
return temp;
}
}
// --------------------------------------------------------------------
// 심화 스택 구현
// --------------------------------------------------------------------
// 현재 스택 원소 개수 반환
int get_stack_size_as(Array_Stack* stack)
{
if(!is_empty_as()){
return Array_Stack.top;
}
else{
printf("0");
}
}
// 스택의 최상위 원소(top) 값 반환
int get_top_as(Array_Stack* stack)
{
if(!is_empty_as()){
return Array_Stack* stack[Array_Stack.top];
}
}
/*
* 스택의 최상위 원소부터 순서대로 출력 (pop X)
* top ... bottom
* ex) 5 10 12 4 3
*/
void print_stack_as(Array_Stack* stack)
{
if(!is_empty_as()){
for(i = Array_Stack.top; i >= 0; i--){
printf("%c", Array_Stack* stack[i]);
}
printf("\n");
}
}
stack_array.h입니다.
`#include <stdio.h>
#include <stdbool.h>
#define MAX_STACK_SIZE 5
typedef struct Array_Stack {
int array[MAX_STACK_SIZE];
int top;
}Array_Stack;
void stack_init_as(Array_Stack* stack);
bool is_empty_as(Array_Stack* stack);
bool is_full_as(Array_Stack* stack);
void push_as(Array_Stack* stack, int data);
int pop_as(Array_Stack* stack);
int get_stack_size_as(Array_Stack* stack);
int get_top_as(Array_Stack* stack);
void print_stack_as(Array_Stack* stack);`
Array_stack.top 이라고 구조체에서 가져왔는데도 인식이 안되네요. 뭐가 문제인지 모르겠습니다. 딴 것도 잘못된 거 많을텐데 top부분이 안되는 게 가장 먼저인거 같아 질문드립니다.