데이터 구조3: 스 택: C 언어
6910 단어 데이터 구조
:
데이터 구조
#define MAXSIZE 20 /* */
typedef int Status;
typedef int SElemType; /* SElemType , int */
/* */
typedef struct
{
SElemType data[MAXSIZE];
int top; /* */
}SqStack;
기본 조작
/* S , */
int StackLength(SqStack S)
{
return S.top+1;
}
/* , e S , OK; ERROR */
Status GetTop(SqStack S,SElemType *e)
{
if (S.top==-1)
return ERROR;
else
*e=S.data[S.top];
return OK;
}
/* e */
Status Push(SqStack *S,SElemType e)
{
if(S->top == MAXSIZE -1) /* */
{
return ERROR;
}
S->top++; /* */
S->data[S->top]=e; /* */
return OK;
}
/* , S , e , OK; ERROR */
Status Pop(SqStack *S,SElemType *e)
{
if(S->top==-1)
return ERROR;
*e=S->data[S->top]; /* e */
S->top--; /* */
return OK;
}
테스트
int main()
{
int j;
SqStack s;
int e;
if(InitStack(&s)==OK)
for(j=1;j<=10;j++)
Push(&s,j);
printf(" :");
StackTraverse(s);
Pop(&s,&e);
printf(" e=%d
",e);
printf(" :%d(1: 0: )
",StackEmpty(s));
GetTop(s,&e);
printf(" e=%d %d
",e,StackLength(s));
ClearStack(&s);
printf(" , :%d(1: 0: )
",StackEmpty(s));
return 0;
}
공유 창고
데이터 구조
typedef int Status;
typedef int SElemType; /* SElemType , int */
/* */
typedef struct
{
SElemType data[MAXSIZE];
int top1; /* 1 */
int top2; /* 2 */
}SqDoubleStack;
조작
/* S , */
int StackLength(SqDoubleStack S)
{
return (S.top1+1)+(MAXSIZE-S.top2);
}
/* e */
Status Push(SqDoubleStack *S,SElemType e,int stackNumber)
{
if (S->top1+1==S->top2) /* , push */
return ERROR;
if (stackNumber==1) /* 1 */
S->data[++S->top1]=e; /* 1 top1+1 。 */
else if (stackNumber==2) /* 2 */
S->data[--S->top2]=e; /* 2 top2-1 。 */
return OK;
}
/* , S , e , OK; ERROR */
Status Pop(SqDoubleStack *S,SElemType *e,int stackNumber)
{
if (stackNumber==1)
{
if (S->top1==-1)
return ERROR; /* 1 , */
*e=S->data[S->top1--]; /* 1 */
}
else if (stackNumber==2)
{
if (S->top2==MAXSIZE)
return ERROR; /* 2 , */
*e=S->data[S->top2++]; /* 2 */
}
return OK;
}
귀착 하 다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.