70,023
社区成员




int SEmpty(SeqStack *S)/*判断栈是否为空*/
{
if(S->top==-1) return 1;
else return 0;
}
int SFull(SeqStack *S)/*判断栈是否已满*/
{
if(S->top==SMAX-1) return 1;
else return 0;
}
int Push(SeqStack *S,ElemType e) /*进栈*/
{
if(S->top==SMAX-1) return 0;
S->data[++S->top]=e;
return 1;
}
int Pop(SeqStack *S,ElemType *e) /*出栈*/
{
if(S->top==-1) return 0;
*e=S->data[S->top--];
return 1;
}
void InitQueue(SeqQueue *Q)/*初始化队列*/
{
Q->data=(ElemType*)malloc(QMAX*sizeof(ElemType));
Q->front=Q->rear=0;
}
int QEmpty(SeqQueue *Q)/*判断队列是否为空*/
{
if(Q->front==Q->rear) return 1;
else return 0;
}
int EnQueue(SeqQueue *Q,ElemType e)/*判断队列是否已满*/
{
if((Q->rear+1)%QMAX==Q->front) return 0;
Q->data[Q->rear]=e;
Q->rear=(Q->rear+1)%QMAX;
return 1;
}
int DeQueue(SeqQueue *Q,ElemType *e)/*删除队列中的元素*/
{
if(Q->front==Q->rear) return 0;
*e=Q->data[Q->front];
Q->front=(Q->front+1)%QMAX;
return 1;
}
void InitLQueue(LinkQueue *Q) /*初始化便道*/
{
Q->front=Q->rear=NULL;
}
int LQEmpty(LinkQueue *Q)/*判断便道是否为空*/
{
if(Q->front==NULL) return 1;
return 0;
}
int EnLQueue(LinkQueue *Q,ElemType e)/*增加便道中的元素*/
{
NodeQueue *p;
p=(NodeQueue*)malloc(sizeof(NodeQueue));
if(p==NULL) return 0;
p->data=e;
p->link=NULL;
if(Q->front==NULL)
{
Q->front=Q->rear=p;
}
else
{
Q->rear->link=p;
Q->rear=p;
}
return 1;
}
int DeLQueue(LinkQueue *Q,ElemType *e)/*删除便道中的元素*/
{
NodeQueue *p;
if(Q->front==NULL) return 0;
p=Q->front;
Q->front=p->link;
*e=p->data;
free(p);
return 1;
}