大家都来看看,能帮的酒帮帮我吧!
我要的程序是对队列的使用,即将若干个元素存入队列(链式存储结构的队列)中,然后再将队列中元素输出!元素入队和出队都是用函数来完成!本来是不会这样提出来问大家的,但是前几次我把我写的程序拿出来给大家改,可是就是没有一个人帮我把错误的地方改好!也许我写程序的思路大家还不清楚吧,所以现在希望帮我的朋友用你们的思路帮我写出这个程序!谢谢!
程序代码:#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();
}
}
给你 拿去吧