猿问

单链表实现问题

在线性表的实现中,头插法和尾插法在函数参数中为什么么用的Node*&head?目前在参考书上的代码实现线性表的操作。去掉&符号,编译依然正确。一枚找工作的大四狗,汪汪。
voidInsert_Head(Node*&head,constint&val)//头插法
{
Node*ptr=newNode();
ptr->next=head;
ptr->data=val;
head=ptr;
}
voidInsert_Back(Node*&head,Node*&back,constint&val)//尾插法
{
Node*ptr=newNode();
ptr->data=val;
ptr->next=NULL;
if(head==NULL)
head=back=ptr;
else{
back->next=ptr;
back=ptr;
}
}
拉丁的传说
浏览 384回答 2
2回答

慕仙森

你注意一下head和back这两个定义成Node*&类型的参数,在函数内部都有赋值操作。&表示引用,我想你应该知道的吧,*&就是指针的引用,这个应该也好理解。引用有一个特点就是,修改型参的值同时也会修改实参的值,但如果不是引用,修改了形参的值对实参不会有影响就这点区别了

萧十郎

指针引用既修改了指针的地址,又修改了指针对应的值.#includeusingnamespacestd;voidswapone(int*v1,int*v2){int*temp=v2;v2=v1;v1=temp;cout
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答