队列推不起作用

时间:2014-11-12 20:40:24

标签: c queue

我正在尝试实现一些队列操作,但看起来即使在推送所有元素之后前端仍然是NULL。在main函数中,我只读了一些元素并将它们推入队列中。我的代码:

typedef struct nod
{
    int info;
    struct nod *link;
}tnod;
tnod *front=NULL,*rear=NULL;
void push(tnod *front,int item)
{
    tnod *tmp;
    tmp=malloc(sizeof(tnod));
    if(tmp==NULL)
    {
        printf("Memorie indisponibila\n");
        return;
    }
    tmp->info = item;
    tmp->link=NULL;
if(front==NULL)      /*daca stiva e goala*/
        {front=tmp; printf("%d",front->info);}
else
    rear->link = tmp;
    rear=tmp;
}

提前致谢。

1 个答案:

答案 0 :(得分:0)

您正在使用函数前面的全局变量front进行镜像:void push(tnod *front,int item)

当您在功能中更改front时,全局front不会更改。更改变量名称。

如果你有任何机会将全局变量front作为push函数中的第一个参数传递,那么通过改变函数中的参数将不会改变全局前沿。