队列是一种在一端进行删除而在另一端进行插入的一种数据结构
队列的基本操作:
入队(enqueue):在队尾(rear)插入一个元素
出队(dequeue):删除对头(front)的元素
实现:
首先创建一个链表,定义一个队尾,并将队头指向队尾,在队尾没有首次输入的时候或者对头指向空的时候为空队列
其次插入元素时,将队尾元素更新,删除元素时,将对头后移,或到空表时停止
代码如下 (空表 和 记录新对头和新队尾 等要后期处理= =)
struct node
{
int x;
struct node* next;
};
struct node* creatnode()
{
struct node* s;
s=(struct node*)malloc(sizeof(struct node));
return s;
}
struct node* Enqueue(struct node* rear,int x)
{
struct node* s=creatnode();
if (s==NULL){
return s;
}
rear->next=s;
s->x=x;
s->next=NULL;
return s;
}
struct node* Dequeue(struct node* Front)
{
struct node* s;
s=Front->next;
free(Front);
return s;
}