首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

帮忙看看这个对队列操作的程序,有没有内存泄漏?多谢

2012-02-19 
帮忙看看这个对队列操作的程序,有没有内存泄漏?谢谢#includeiostreamstructnode{intvaluenode*child}

帮忙看看这个对队列操作的程序,有没有内存泄漏?谢谢
#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;

}

热点排行