//节点定义为
struct node
{
int data;
node* next;
};
//定义栈结构
struct Queue
{
node head;
int length;
};
//定义相关函数:
void init(Queue* q);//初始化
void push_back(Queue* q, int data); //尾部推入一个数据
int front(Queue* q); // 头部数据
void pop_front(Queue* q); // 头部弹出一个数据
int length(Queue* q);//长度
void discard(Queue* q);//释放空间
int main()
{
Queue q;
init(&q);
push_back(&q,1);
push_back(&q,2);
push_back(&q,4);
while(length(&q)>0)
{
cout<<front(&q)<<endl;
pop_front(&q);
}
return 0;
}
void init(Queue* q)
{
q->head.next=NULL;
q->length=0;
}
void push_back(Queue* q,int data)
{
node* obj=new node;
obj->data=data;
obj->next=NULL;
node* p=&q->head;
while(p->next)
{
p=p->next;
}
p->next=obj;
q->length++;
}
int front(Queue* q)
{
return q->head.next->data;
}
void pop_front(Queue* q)
{
node* p=q->head.next;
q->head.next=p->next;
delete p;
q->length--;
}
int length(Queue* q)
{
return q->length;
}
void discard(Queue* q)
{
node* p=q->head.next;
while(p)
{
node* r=p;
p=p->next;
delete r;
}
}
链表实现队列结构
最新推荐文章于 2024-09-02 01:11:34 发布