2 triona Triona 于 2014.10.12 10:56 提问

关于链表中的几个语句的含义

在链表中
1.head=head->next;的含义
2.Link *p=new Link(head->next);的含义;
3.p=p->next;的含义
4.p->next=q;的含义
5.像p->next这样的语句到底指的是数值还是指针
6.什么是循链定位

2个回答

zilaishuichina
zilaishuichina   Rxr 2014.11.19 11:25

1,head显然是头指针,这里我们假设链表元素下标从1开始(第一个节点,第二个节点,第三个节点)
head指向第一个节点(head存储的值是第一个节点的内存地址)
head=head->next 则指向第二个节点(head存储的值是第二个节点的内存地址)

2,new Link(head->next)新申请了一个节点,Link的构造函数lz没给,所以暂时不知道他要怎么构造节点
Link *p=new Link(head->next),用p指向这个新申请的节点(p存储的值是这个新节点的内存地址)

3,p=p->next,类似于head=head->next

4,p->next=q,p显然是指向一个节点的,->是指针运算符,next是节点的一个成员变量
p->next,表示p指向的这个节点的next成员变量
p->next=q,p指向的这个节点的next成员变量里面保存q的值

5,p->next是一个变量,变量可以是数据可以是指针,看它的数据类型是什么就是什么
ps:指针是地址,地址其实也是一个数值,所以如果认为指针是数值也不能说错

6,没听过这个概念,lz是想说判断循环链表,还是想说什么

u012334850
u012334850   2014.11.25 13:36

head是头指针,指向链表的头结点,通常的链表是不在头结点里储存数据的,head=head->next就是指向链表的第二个节点
Link *p=new Link(head->next);这句用来产生一个新节点,不过不知道构造函数咋写的,可以这样写Link *p=new Link()
p=p->next;令p指向原节点的下一个节点
p->next=q;令p的next指针指向q指向的节点,就是说p指向的节点的下一个节点变为了q指向的节点
p->next是一个指针变量,意思是p指向的节点中的next指针,储存的是个地址,把他当做变量来用就可以了
循链定位指的是循环链表的定位吗==

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!