순서 스 택 의 정의 및 관련 작업

1740 단어 데이터 구조
#include 
#define M 1000
typedef char ElemType;
typedef struct   //       
{
    ElemType data[M];//      M   
    int top;//           ,top -1    
} SeqStack;

void InitStack(SeqStack *s)//     
{
    s->top=-1;
}

bool Push(SeqStack *s, char x)//    
{
    if(s->top==M-1)
        return false;
    else
    {
        s->top++;
        s->data[s->top]=x;
        return true;
    }
}

bool Pop(SeqStack *s,char *x)  //    
{
    if(s->top==-1)
        return false;
    else
    {
        *x=s->data[s->top];
        s->top--;
        return true;
    }
}

bool GetTop(SeqStack *s,char *x)   //     
{
    if(s->top==-1)
        return false;
    else
    {
        *x=s->data[s->top];
        return true;
    }
}

bool IsEmpty(SeqStack *s)  //    
{
    if(s->top==-1)
        return true;
    else
        return false;
}

int Size(SeqStack *s)//         
{
    return s->top+1;
}

int main(void)
{
    SeqStack Seq;
    SeqStack *s=&Seq;
    ElemType a;
    ElemType *e=&a;
    InitStack(s);
    printf(" %s
",(IsEmpty(s)==true?" ":" ")); printf("a
"); Push(s,'a'); printf("b
"); Push(s,'b'); printf("c
"); Push(s,'c'); printf("d
"); Push(s,'d'); printf(" %s
",(IsEmpty(s)==true?" ":" ")); GetTop(s,e); printf(" :%c
",a); printf(" :
"); while(!IsEmpty(s)) { printf(" %d ",Size(s)); Pop(s,e); printf("%c
",a); } printf("
"); return 0; }

좋은 웹페이지 즐겨찾기