스 택 의 정적 배열
// :
//author:
//
#include "stdio.h"
//
#define stack_type int
//
#define stack_len 10
//
#define stack_full 0
#define stack_no_full 1
#define stack_empty 0
#define stack_no_empty 1
//
#define success 0
#define failed 1
//
static stack_type stack_1[stack_len];
static int top_elemnt = -1;
//
#define u8 unsigned char
//
u8 Is_stack_empty(void)
{
if (top_elemnt == -1)
return stack_empty;
else return stack_no_empty;
}
//
u8 Is_stack_full(void)
{
if (top_elemnt == stack_len - 1)
return stack_full;
else return stack_no_full;
}
//
u8 push(stack_type data)
{
if (Is_stack_full() == stack_full)
return failed;
else
top_elemnt += 1;
stack_1[top_elemnt] = data;
return success;
}
//
u8 pop(stack_type *data)
{
if (Is_stack_empty() == stack_empty)
return failed;
else
*data = stack_1[top_elemnt];
top_elemnt -= 1;
return success;
}
//
u8 top(stack_type *data)
{
if (Is_stack_empty() == stack_empty)
return failed;
else
*data = stack_1[top_elemnt];
return success;
}
int main(void)
{
u8 cnt = 0;
stack_type data[1] = {0};
printf("stack app running..\r
");
for (cnt = 0; cnt < stack_len + 10; cnt++)
{
if (push(cnt) == failed) printf(" \r
");
else printf(" \r
");
}
// , ,
for (cnt = 0; cnt < stack_len ; cnt++)
{
printf("stack_1[%d]=%d\r
",cnt,stack_1[cnt]);
}
printf("top_element = %d\r
",top_elemnt);
for (cnt = 0; cnt < stack_len + 10; cnt++)
{
if (pop(data) == failed) printf(" \r
");
else printf(" %d\r
", *data);
}
printf("top_element = %d\r
", top_elemnt);
while (1);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
centos yum 창고 구축yum 창고 소개 yum (모두 Yellow dog Updater, Modified 라 고 함) 은 Fedora 와 RedHat 에 있 는 Shell 전단 패키지 관리자 입 니 다.RPM 패키지 관 리 를 바탕 으로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.