데이터 구조의 순서 스 택 의 기본 작업
4923 단어 장쑤 성
순서 스 택 은 1 차원 배열 과 스 택 의 위 치 를 기록 하 는 성형 변 수 를 사용 하여 이 루어 질 수 있 습 니 다. 배열 은 스 택 의 모든 데이터 요 소 를 순서대로 저장 하고 스 택 의 맨 위 치 를 저장 하 는 데 사 용 됩 니 다.
* * 헤더 파일 (Sqstack. h):
#ifndef __SQSTACK_H__
#define __SQSTACK_H__
#include "error.h"
#define TRUE 1
#define FALSE 0
#define SIZE 10
typedef int StackData;
typedef struct _stack
{
StackData data[SIZE]; //
int top;
}Stack;
//
int InitStack (Stack* s);
//
int StackEmpty (Stack* s);
//
int StackFull (Stack* s);
//
int Push (Stack* s, StackData x);
//
int Pop (Stack* s, StackData *x);
//
int GetTop (Stack* s, StackData *x);
#endif
원본 파일 (Sqstack. c):
#include "SqStack.h"
//
int InitStack (Stack* s)
{
if (NULL == s)
{
errno = ERROR;
return FALSE;
}
s->top = -1;
}
// ,
int StackEmpty (Stack* s)
{
if (NULL == s)
{
errno = ERROR;
return FALSE;
}
return s->top == -1;
}
// ,
int StackFull (Stack* s)
{
if (NULL == s)
{
errno = ERROR;
return FALSE;
}
return s->top == (SIZE - 1);
}
//
int Push (Stack* s, StackData x)
{
if (NULL == s)
{
errno = ERROR;
return FALSE;
}
//
if (StackFull(s))
{
errno = FULL_STACK;
return FALSE;
}
// x
s->data[++s->top] = x;
return TRUE;
}
//
int Pop (Stack* s, StackData *x)
{
if (NULL == s)
{
errno = ERROR;
return FALSE;
}
//
if (StackEmpty(s))
{
errno = EMPTY_STACK;
return FALSE;
}
*x = s->data[s->top--];
return TRUE;
}
//
int GetTop (Stack* s, StackData *x)
{
if (NULL == s)
{
errno = ERROR;
return FALSE;
}
//
if (StackEmpty(s))
{
errno = EMPTY_STACK;
return FALSE;
}
*x = s->data[s->top];
return TRUE;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
데이터 구조의 순서 스 택 의 기본 작업순서 스 택 은 1 차원 배열 과 스 택 의 위 치 를 기록 하 는 성형 변 수 를 사용 하여 이 루어 질 수 있 습 니 다. 배열 은 스 택 의 모든 데이터 요 소 를 순서대로 저장 하고 스 택 의 맨 위 치 를 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.