데이터 구조 --- 창고 의 기본 조작
-Unit3 -
창 고 는 중요 한 선형 구조 로 후진 선 출 의 특성 을 가지 고 있다.요 소 는 스 택 상단 에서 만 눌 러 올 수 있 고 스 택 상단 에서 만 팝 업 할 수 있 습 니 다.
우 리 는 먼저 창고 의 구 조 를 살 펴 보 자.
typedef struct stac
{
int *top;
int *bottom;
int stacksize;
}Stack;
top 은 스 택 지붕 이 고 위 치 는 맨 위 요소 보다 한 자리 높 습 니 다.bottom 은 창고 밑 이 고 위 치 는 맨 아래 요 소 를 가리킨다.스 택 이 비어 있 을 때 top = bottom 이 있 습 니 다.
창고 에는 다음 과 같은 몇 가지 상용 조작 이 있다.
void InitStack(Stack &S);//
void DestroyStack(Stack &S);//
void ClearStack(Stack &S);//
int StackEmpty(Stack S);//
int StackLength(Stack S);//
void GetTop(Stack S,int &e);//
void Push(Stack &S,int e);//
void Pop(Stack &S,int &e);//
스 택 초기 화 실현:
void InitStack(Stack &S)//
{
S.bottom=(int *)malloc(SIZE*sizeof(int));
if(S.bottom==NULL) exit(1);
S.top=S.bottom;
S.stacksize=SIZE;
}
압 입 원소:
void Push(Stack &S,int e)//
{
if(S.top-S.bottom>=SIZE)//
{
S.bottom=(int *)realloc(S.bottom,(ADD_SIZE+S.stacksize)*sizeof(int));
if(S.bottom==NULL) exit(1);
S.top=S.bottom+S.stacksize;
S.stacksize=S.stacksize+ADD_SIZE;
}
*S.top++=e;//top e, top 1
}
팝 업 요소:
void Pop(Stack &S,int &e)//
{
if(S.top==S.bottom)//
{
printf("Error");
return;
}
e=*--S.top;//top , , e
}
창고 꼭대기 원소 획득:
void GetTop(Stack S,int &e)// ( Pop() )
{
if(S.top==S.bottom)
{
printf("Error");
return ;
}
e=*(S.top-1);// Pop
}
창고 파괴:
void DestroyStack(Stack &S)//
{
free(S.bottom);
S.top=NULL;
S.bottom=NULL;
S.stacksize=0;
}
창고 의 청소
void ClearStack(Stack &S)//
{
S.top=S.bottom;// ,
}
스 택 이 비어 있 는 지 판단 하기:
int StackEmpty(Stack S)//
{
if(S.top==S.bottom)
{
return 1;//1
}
return 0;//0
}
창고 길이:
int StackLength(Stack S)
{
return (S.top-S.bottom);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
pandas 읽기 및 쓰기 Excelpandas 읽기와 쓰기 Excel은 중복된 데이터 가공 작업을 pandas에 맡기고 수동 노동을 절약하며 사용하기도 편리하지만 출력의 형식은 그다지 아름답지 않다.본고는 read_excel()과to_excel()의...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.