堆栈
类似于链表 先进后出 所以只需要操作头指针
队列
同样类似于链表 从尾指针加入 从头指针出 所以需要两个
void InitQueue()//初始化队列
{
pqueue = (Queue*)malloc(sizeof(Queue));
if(pqueue != NULL)
{
pqueue->front=NULL;
pqueue->rear=NULL;
pqueue->size=0;
}
return;
}
PNode EnQueue(PNode pnode)//队列加入元素
{
if(pnode != NULL)
{
pnode->next = NULL;
if(IsEmpty())
{
pqueue->front = pnode;
}
else
{
pqueue->rear->next = pnode;
}
pqueue->rear=pnode;
pqueue->size++;
}
return pnode;
}
PNode DeQueue()//删除元素
{
PNode pnode= pqueue->front;
if(!IsEmpty())
{
pqueue->size--;
pqueue->front = pnode->next;
free(pnode);
if(pqueue->size == 0)
pqueue->rear = NULL;
}
return pqueue->front;
}
int IsEmpty()//判断是否为空
{
if(pqueue->rear == NULL && pqueue->size ==0)
{
return 1;
}
else
return 0;