C 언어 데이터 구조 창고 와 대기 열 순서 창고 (창고 의 순서 저장 구조)
//C -- -- ( )
#include
#include
#include
#include
#include
#include
#define STACK_INIT_SIZE 100 //
#define STACK_INCREMENT_SIZE 10 //
typedef int ElemType;
typedef struct{
ElemType *base; // ( )
ElemType *top; //
int stacksize;//
}OrderStack;
int InitStack(OrderStack &s);// ( )
int Pop(OrderStack &s);// ( )
void Traverse(OrderStack &s);//
int GetTop(OrderStack s);//
int Push(OrderStack &s,ElemType &e);//
// ( )
int InitStack(OrderStack &s){
s.base=(ElemType*)malloc(10);
if (!s.base)
exit(0);//
s.top=s.base;
s.stacksize=STACK_INIT_SIZE;
return 1;
}
//
int GetTop(OrderStack s){
ElemType e;
if (s.top==s.base){
return FALSE;
}else{
e=*(s.top-1);
}
return e;
}
//
int Push(OrderStack &s,ElemType &e){
if ((s.top-s.base)>=s.stacksize){
s.base=(ElemType *)realloc(s.base,(s.stacksize+STACK_INCREMENT_SIZE)*sizeof(ElemType));
if (!s.base){
return false;
}
s.top=s.base+s.stacksize;
s.stacksize=s.stacksize+STACK_INCREMENT_SIZE;
printf("%-6 !!! --> %d
",s.stacksize);
}
*s.top=e;
s.top++;
return 1;
}
// ( )
int Pop(OrderStack &s){
ElemType e;
if (s.top==s.base){
return 0;
}else{
s.top--;
e=*s.top;
return e;
}
}
//
void Traverse(OrderStack &s){
if (s.top==s.base){
} else{
ElemType *traverse=s.top;
while (traverse>s.base){
traverse--;
printf("%d
",*traverse);
}
}
}
int main(){
OrderStack s;
InitStack(s);
for (int i=1;i<=10;i++){
//*s.top=i;
//++s.top;
Push(s,i);//
printf(" %d
",GetTop(s));
}
printf("--------------- ---------------
");
int k=100;
int m=200;
Push(s,k);//
printf(" %d
",GetTop(s));
Push(s,m);//
printf(" %d
",GetTop(s));
printf("--------------- ---------------
");
printf(" %d
",Pop(s));
printf(" %d
",Pop(s));
printf(" %d
",Pop(s));
printf(" %d
",Pop(s));
printf("--------------- ---------------
");
Traverse(s);
system("pause");
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.