我无法弄明白,这是我到目前为止所拥有的。
但是功能Enqueue()
并没有改变Head
& main方法中的Tail
个对象。
我该怎么做?
#include <stdio.h>
typedef struct queuenode{
int data;
struct queuenode *next;
} Queue_type;
void Enqueue( Queue_type *head, Queue_type *tail , int item)
{
Queue_type *temp;
temp->data = item;
temp->next = NULL;
if (tail == NULL){//if first node
head=temp;
tail=temp;
}
else{
tail->next = temp;
tail = temp;
}
}
void main(void)
{
Queue_type *Head;
Queue_type *Tail;
Head = NULL;
Tail = NULL;
printf("\n[*]Enter Number to Enqueue : ");
scanf("%d", &item);
Enqueue(Head, Tail, item);
}
答案 0 :(得分:8)
如何通过引用传递指针?通过引用传递:
void Enqueue( Queue_type *&head, Queue_type *&tail , int item)
其他问题:
Queue_type *temp;
temp->data = item;
是未定义的行为。
Mandatory link.您正在C ++环境中编写C代码。只是不要。