栈、队列

// 以整型举例
int a[20] , site = 0 ;
int top(){
    return a[site] ;
}
void pop(){
    if(site > 0){
        site -- ;
    }
}
int push(int v){
    if(site < 30){
        a[site] = v ;
        site ++ ;
        return 0 ; 
    }
    return -1 ;
}

队列

typedef struct 
{
    int *base ; //表示队列的大小
    int font ; // 队头
    int end ; // 队尾
} SqQueue;

int InitQueue(SqQueue *q){
    q->base = (int * )malloc(MAXSIZE * sizeof(int)) ;
    if(!q){
        return -1 ;
    }
    q->font = 0 ;
    q->end = 0 ;
    return 0 ;
}
int EnQueue(SqQueue *q ,int v){
    if( ( q->base + 1 ) % MAXSIZE == q->font  ){
        return -1 ; // 队满
    }
    q->base[q->base] = v ;
    q->base = (q->base  + 1  )% MAXSIZE ;
    return 0 ;
}
int DeQueue(SqQueue *q ,* e){
    if(( q->font + 1 ) % MAXSIZE == q->end){
        return -1 ;// 表示队空
    }
    *e = q->base[q->font ] ;
    q->font =( q->font + 1 ) % MAXSIZE ;
    return 0 ;
}
发布了119 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/getchar97/article/details/104347148