창고 의 순서 저장 구조 및 그 실현

스 택 은 선형 구조의 하나 이기 때문에 스 택 도 순서대로 저장 구 조 를 통 해 이 루어 질 수 있다.
   선형 표 의 순서 저장 구 조 는 배열 을 통 해 이 루어 지기 때문에 스 택 의 순서 저장 구조 도 배열 을 통 해 이 루어 진다.불가피 하 게 스 택 의 최대 저장 공간 을 설정 해 야 합 니 다.스 택 은 스 택 꼭대기 에서 만 요소 의 삽입 과 삭제 작업 을 할 수 있 기 때문에 스 택 정상 을 가리 키 는 변수 top 이 필요 합 니 다.그러면 스 택 의 저장 구조:
typedef int SElemType;

typedef struct{

    SElemType data[MAXSIZE];
    int top;
}SqStack;

그 다음 에 새로운 요소 e 를 삽입 하 는 것 입 니 다. 즉, 스 택 에 들 어가 push 를 조작 하 는 것 입 니 다.스 택 꼭대기 에 요 소 를 삽입 하려 면 먼저 스 택 의 저장 공간 이 충분 한 지 판단 해 야 합 니 다. 저장 공간 이 없 으 면 스 택 에 들 어 가 는 데 실 패 했 습 니 다.코드 는 다음 과 같 습 니 다:
Status Push ( SqStack *S, SElemType e )
{
    if ( S->top == MAXSIZE - 1 )
        return ERROR;
    
    S->top++;
    S->data[S->top] = e;

}

작업 을 삭제 하려 면 스 택 이 비어 있 는 지, 비어 있 지 않 으 면 삭제 가 유효 하고 비어 있 으 면 삭제 가 실 패 했 습 니 다.이어서 top - 만 있 으 면 됩 니 다.코드 는 다음 과 같 습 니 다:
Status Pop ( SqStack *S, SElemType *e )
{
    if ( S->top == -1 )
    return ERROR;
    
    *e = S->data[S->top];
    S->top--;

    return OK;
}

   순환 과 관련 이 없 기 때문에 시간 복잡 도 는 모두 O (1) 이다.

좋은 웹페이지 즐겨찾기