大家都来看看,能帮的酒帮帮我吧!
我要的程序是对队列的使用,即将若干个元素存入队列(链式存储结构的队列)中,然后再将队列中元素输出!元素入队和出队都是用函数来完成!本来是不会这样提出来问大家的,但是前几次我把我写的程序拿出来给大家改,可是就是没有一个人帮我把错误的地方改好!也许我写程序的思路大家还不清楚吧,所以现在希望帮我的朋友用你们的思路帮我写出这个程序!谢谢!
#include<stdio.h> #include <malloc.h> #include <string.h> struct Node { int num; Node *next; }; class Queue { public: Queue(); ~Queue(); void push_back(Node node); Node get_front(); void pop_front(); void fun(Node *p); private: Node *front; Node *tail; }; Queue::Queue() { front = (Node *)malloc(sizeof(Node)); memset(front,0,sizeof(Node)); tail = (Node *)malloc(sizeof(Node)); memset(tail,0,sizeof(Node)); front->next = tail; } void Queue::fun(Node *p)//递归释放链表 { if(p->next != NULL) fun(p->next); free(p); } Queue::~Queue() { } void Queue::push_back(Node node) { *tail = node; tail->next = (Node *)malloc(sizeof(Node)); tail = tail->next; memset(tail,0,sizeof(Node)); } Node Queue::get_front() { return *(front->next); } void Queue::pop_front() { Node *p = front->next; front->next = front->next->next; free(p); } void main() { Queue q; Node a[5] = {{1,0},{2,0},{3,0},{4,0},{5,0}}; int i,j,k; for(i = 0;i<5;i++) q.push_back(a[i]); for(i = 0;i<5;i++) { printf("%d ",q.get_front()); q.pop_front(); } }给你 拿去吧