链表实现队列结构

来源:互联网 发布:好玩的rpg游戏 知乎 编辑:程序博客网 时间:2024/06/06 20:13
//节点定义为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;    }}