为了账号安全,请及时绑定邮箱和手机立即绑定

C++创建链表问题

C++创建链表问题

FFIVE 2019-04-19 16:11:21
cpp#includeusingnamespacestd;structnode{chardata;node*next;};;node*Create();;voidshow(node*head);intmain(){node*head;head=Create();show(head);return0;}node*Create(){chartemp;node*head=NULL;node*next=NULL;node*r=head;node*PS;coutnext=NULL;if(head==NULL){head=PS;}else{r->next=PS;}r=PS;}returnhead;}voidshow(node*head){node*read=head;while(read!=NULL){coutnext;}cout
查看完整描述

2 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

放到外面说明当head==NULL成立的时候也需要执行r=PS。那么为什么每次增加节点都需要执行r=PS呢?你顺着逻辑想想吧。。
好吧,其实是这样的,按你的想法放到里面,增加第一个节点的时候head==NULL成立,r=PS并不会执行,那么第二次增加节点的时候r还是等于NULL但head==NULL不成立,于是执行r->next=PS时程序挂掉。。
r这个指针其实指向的是当前链表最后一个节点。
PS..申明node结构的时候应该是node*next吧。。。
                            
查看完整回答
反对 回复 2019-04-19
?
皈依舞

TA贡献1851条经验 获得超3个赞

node*head=NULL;
node*next=NULL;
node*r=head;
此时r=NULL,然后
r->next=PS;
r=PS;
相当于
NULL->next=PS
...
然后大家就呵呵了
                            
查看完整回答
反对 回复 2019-04-19
  • 2 回答
  • 0 关注
  • 401 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信