读书人

帮忙看看这个对队列操作的程序有没有

发布时间: 2012-02-19 19:43:39 作者: rapoo

帮忙看看这个对队列操作的程序,有没有内存泄漏?谢谢
#include <iostream>

struct node
{
int value;
node *child;
};//node结构体
node* queue[100];//队列数组,存放node指针
int head,tail;//队列头,队列尾
node* root;//根节点

void in_queue(node* A);//入队列
node* out_queue();//出队列

void in_queue(node* A)
{ //入队列
queue[tail]=A;
tail++;
}

node* out_queue()
{ //出队列
static node* x;
x=queue[head];
head++;
return x;
}

void main()
{
root=new node;
int x=1;
root-> value=x;
root-> child=NULL;

in_queue(root);//根节点入队列
cout < <queue[head]-> value < <endl;

node* previous;//存放出队列的元素
previous=out_queue();
cout < <previous-> value < <endl;

}


[解决办法]
稍微修改一下
#include <iostream>
using namespace std;
struct node{
int value;
node *child;
node(int val,node* p):value(val),child(p){
}
};//node结构体
node* queue[100];//队列数组,存放node指针
int head,tail;//队列头,队列尾
node* root;//根节点

void in_queue(node* A);//入队列
node* out_queue();//出队列

void in_queue(node* A)
{ //入队列
queue[tail]=A;
tail++;
}

node* out_queue()
{ //出队列
static node* x;
x = queue[head];
head++;
return x;
}

void main()
{
int x = 1;
root = new node(x,NULL);


in_queue(root);//根节点入队列
cout < <queue[head]-> value < <endl;

node* previous;//存放出队列的元素
previous=out_queue();
cout < <previous-> value < <endl;
delete root;

}

读书人网 >C++

热点推荐