#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#pragma warning(disable:4996)
#define MAX_STACK_SIZE 100
#define MAX_STRING 100
typedef struct {
int student_no;
char name[MAX_STRING];
char address[MAX_STRING];
} element;
typedef struct {
element stack[MAX_STACK_SIZE];
int top;
} StackType;
// 공백 상태 검출 함수
int is_empty(StackType *s)
{
return (s->top == -1);
}
// 포화 상태 검출 함수
int is_full(StackType *s)
{
return (s->top == (MAX_STACK_SIZE - 1));
}
// 삽입 함수
void push(StackType *s)
{
if (is_full(s)) {
fprintf(stderr, "스택 포화 에러 ");
return;
}
else s->stack[(s->top)++];
}
// 삭제 함수
void pop(StackType *s)
{
if (is_empty(s)) {
fprintf(stderr, "스택 공백 에러 ");
exit(1);
}
else return s->stack[(s->top)--];
}
// 피크함수
element peek(StackType *s)
{
if (is_empty(s)) {
fprintf(stderr, "스택 공백 에러 ");
exit(1);
}
else return s->stack[s->top];
}
void display(StackType *s)
{
if (is_empty(s)) {
printf("공백 스택 ");
}
for (int i = 0; i <= s->top; i++) {
printf("name:%s ", s->stack[i].name);
printf("address:%s ", s->stack[i].name);
printf("student number: %d ", s->stack[i].student_no);
}
}
// 주함수
void main()
{
StackType ie;
is_empty(&ie);
printf("스택에 2개요소 추가 ");
push(&ie, 20053001, "HongGildong", "seoul");
push(&ie, 20053001, "Kimsudong", "Daejeon");
display(&ie);
printf("스택에 1개요소를 삭제 ");
pop(&ie);
display(&ie);
printf("스택에 1개요소를 삭제 ");
pop(&ie);
display(&ie);
}
여기서 삽입함수를 바꺼서 메인출력할려고하는데 삽입함수를 어떻게 바꺼야하죠?
댓글 0