스택-배열 구현
7652 단어 배열
#include <stdio.h>
#include <malloc.h>
#define DataType int
#define MAX 1024
typedef struct
{
DataType data[MAX];
int top;
}stack, *pstack;
pstack init_stack()
{
pstack ps;
ps=(pstack)malloc(sizeof(stack));
if(!ps)
{
printf("Error. fail malloc...
");
return NULL;
}
ps->top=-1;
return ps;
}
int empty_stack(pstack ps)
{
if(-1 == ps->top)
return 1;
else
return 0;
}
int push(pstack ps, DataType data)
{
if(ps->top == MAX-1)
{
printf("Stack is full...
");
return 0;
}
ps->top++;
ps->data[ps->top]=data;
return 1;
}
int pop(pstack ps, DataType *data)
{
if(empty_stack(ps))
{
printf("Stack is empty...
");
return 0;
}
*data=ps->data[ps->top];
ps->top--;
return 1;
}
DataType top_stack(pstack ps)
{
if(empty_stack(ps))
{
printf("Stack is empty...
");
return 0;
}
return ps->data[ps->top];
}
void display(pstack ps)
{
int i;
if(empty_stack(ps))
{
printf("Stack is empty...
");
return;
}
printf("printf the items of stack...
");
for(i=ps->top;i>-1;i--)
printf("%d ", ps->data[i]);
printf("
");
}
int main()
{
int i, num, data, pdata;
pstack ps;
ps=init_stack();
printf("Enter stack num:");
scanf("%d", &num);
for(i=0;i<num;i++)
{
scanf("%d", &data);
push(ps, data);
}
display(ps);
printf("Top is %d
", top_stack(ps));
for(i=0;i<num;i++)
{
pop(ps, &pdata);
printf("pop : %d
", pdata);
}
display(ps);
printf("end stack
");
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
PHP 배열에서 요소의 값이 최대 값인 키 이름을 가져옵니다.Qiita 에 " "@ PHP 매뉴얼 데이터 최대값이 나타나는 순서대로 획득 결과 키를 정렬한 후 가져오기 결과 @ paiza.IO PHP v5.6.40, v7.1.33, v7.4.4 " "@ StackOverflo...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.