栈
// 以整型举例
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 ;
}