C 언어 스 택 의 생 성 을 깊이 이해 합 니 다.

스 택:표 끝 에 만 삽입 하고 삭제 하 는 선형 표 입 니 다!
창고 의 구조 정 의 는 다음 과 같다.

typedef struct Stack
{
    SLDataType *base;//       
    int top;//       
} Stack;
스 택 초기 화 는 다음 과 같 습 니 다:

SLDataType initStack(Stack &S)
{
  S.base=(SLDataType*)malloc(N*sizeof(SLDataType));//          
  if(S.base==NULL)
        return -1;
  S.top=0;
  return 1;
}
스 택 요소 의 입력 인터페이스:

SLDataType pushStack(Stack &S,int e)//      
{
    if(S.top==N)
        return 0;
    S.base[S.top]=e;
    S.top++;
    return 1;
}
전체 코드 는 다음 과 같 습 니 다:

#include<stdio.h>
#include<stdlib.h>
#define N 30
typedef int SLDataType;
typedef struct Stack
{
    SLDataType *base;//       
    int top;//       
} Stack;
SLDataType initStack(Stack &S)
{
  S.base=(SLDataType*)malloc(N*sizeof(SLDataType));
  if(S.base==NULL)
        return -1;
  S.top=0;
  return 1;
}
SLDataType pushStack(Stack &S,int e)//      
{
    if(S.top==N)
        return 0;
    S.base[S.top]=e;
    S.top++;
    return 1;
}
void printStack(Stack &S)
{
    int i;
    i=0;
    while(i<S.top)
    {
        printf("%d ",S.base[i]);
        i++;
    }
    printf("
"); } int main() { Stack S; int i,n,m;//n if(initStack(S)==1) printf("
"); printf(" :"); scanf("%d",&n); i=1; printf(" :"); while(i<=n) { scanf("%d",&m); if(pushStack(S,m)==0) { printf("%d !
",m); break; } i++; } printf(" : "); printStack(S);// return 0; }
실행 결 과 는 다음 과 같 습 니 다.
在这里插入图片描述
총결산
이 글 은 여기까지 입 니 다.당신 에 게 도움 을 줄 수 있 기 를 바 랍 니 다.또한 당신 이 우리 의 더 많은 내용 에 관심 을 가 져 주 실 수 있 기 를 바 랍 니 다!

좋은 웹페이지 즐겨찾기