C语言单链表中L-nextp和pL-next的区别

2021-01-23 06:04:57 字数 3850 阅读 6767

1楼:

l->next = p l->next指向p指向的节点。

p = l->next p指向l->next指向的节点。

数据结构中,单链表p=l与p=l->next有什么区别?p->next=s与p->next=s-> 10

2楼:热情的

l在数据结构中一般是作为链表头节点的指针,p=l,将p指针也指向头节点。

l->next有两层含义,可以表示l的后继节点指针,又可表示l的指针域,(补充:链表每个节点分为数据域和指针域,(单链表的指针域只有后继指针域,双链表的指针域分为前趋指针域和后继指针域))。第一,当它在等号右边时(即x = l->next形式)一般是指将x指针指向头节点l的后一个节点也就是链表的第一个数据节点;第二,当它在等号左边的时候(即l->next = x),表示将x的值当做地址,写入到l的后继指针域l->next当中,相当于头节点l的后面链接一个数据节点。

基础概念理解后,对于p->next=s与p->next=s->next就好理解了,p->next=s:将指针变量s的值写入p的后继指针域,相当于p数据节点后又链接一个指针s指向数据节点,p->next=s->next:将s节点后接的节点的地址写入到p节点的后继指针域,相当于p节点插入到原先s节点与s的后接节点中间。

中间逻辑建议画图理一遍,理顺了以后再见到就能很快看明白的。

3楼:匿名用户

p和l都是数据结构对象吗 p=l是把数据结构l的每个变量的值赋给p 另个是把l里的next变量的值赋给p 第二种好像错的吧。第二个第一种是把s的首地址赋给p的next变量 第二种是把s的next值赋给p的next

4楼:雨后小故事

l->next是l后的下一个数据

c语言p=l;是什么意思,还有p=l->next;是什么意思,这两个语句有什么区别,l为链表的头结点 5

5楼:匿名用户

以后问的时候希望再说的清楚一点

问这个问题看来你c的知识了解的还不是很够,链表的知识也有点贫乏啊链表的话 这里p,l的类型应该都是自己定义的结构体 node大致struct node

node这个结构体里存放了两个变量,

entry就是节点的内容,next是一个node型指针,存放着下一个节点的地址,指向下一个节点

而所谓链表就是一串节点连在一起,像数组一样,比数组的优点就是比如在数组中间要插入一个数的话,插入位置之后的每一个元素都要向后移一位,而链表的话只需要修改插入位置前的节点的指针就可以了。

你这里的两个语句都是简单的赋值,p = l;就是把让自己定义的node p = 头结点,

而p = l->next就是让p = 头结点的后一个节点。

这里 ->是结构体中的运算符,表示使用这个结构体中的某个指针变量。

6楼:红领巾飘过

p=l是让p指向l这个节点。 p=l->next是让p指向l的下一个节点。首先链表定义中next的定义必须是指向l类型的指针。

在c语言链表中,p=q->next和p->next=q->next有什么区别?

7楼:匿名用户

给你普及下指针的真谛:

假设两个链表节点的内存地址分别为aaaa和bbbb,节点内偏移4字节处保存名为next的指针,

p = 0xaaaa,q=0xbbbb,这说明p和q分别指向这两个节点。

p->next是内存aaae处的内容,q->next是内存bbbf处的内容(假设为cccc)

那么, p = q->next 即p=0xcccc

p->next = q->next,即将内存aaae处的内容改为cccc

两值意义相差甚远。

8楼:足球队联络员

我想了一个晚上,这是我的思考成果。

9楼:晚霞拉长了身影

p=q—>next的意思是把p结点接到q结点后面,p—>next=q—>next的意思是把q结点的下一个结点接到p结点后。

单链表中p->next=s->next和p->next=s有什么不同?

10楼:

第一式把p和s的下一结点链到一起,s可以删除了,第二式把p和s链到一起从此,s就是链表的一部分了,或者p和s所在的两个链表成一个新的链表了,如果s是一个链表的第一个结点,p是一个单独结点的话p现在就是第一个结点了!通常更新头结点就用第二个方法,先分配新结点p给p的数据赋值,p->next=s,head=p;这是头插法;直接找到最后一个结点p;p->next=s这是尾插法;总之前一个用于删除结点较多,后一个多用于插入结点。

c语言链表中q->next=p;表示什么意思?

11楼:南瓜苹果

q->next = p; 表示将节点p加入到节点q之后。

意思:使当前指针指向链表的下一个结点。

一般作用在数据结构中的单链表里由应用,语句中的p一般指向一个结构体类型的数据,此类型的数据通常表示节点;结构体里存放的一些数据和记录下一个节点地址的指针变量next;这个next就好比链条一样,连接着一个个节点。

->是一个整体,它是用于指向结构体、c++中的class等含有子数据的指针用来取子数据。换种说法,如果在c语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么要用指针取出结构体中的数据,就要用到“->”.

扩展资料链表的特点:

1、n个节点离散分配

2、每一个节点之间通过指针相连

3、每一个节点有一个前驱节点和一个后继节点4、首节点没有前驱节点,尾节点没有后继节点创建链表前须知

首节点:存放第一个有效数据的节点。

头节点:在单链表的第一个结点之前附设一个结点,它没有直接前驱,称之为头结点,头结点的数据域可以不存储任何信息,指针域指向第一个节点(首节点)的地址。头结点的作用是使所有链表(包括空表)的头指针非空。

头指针:指向头节点的指针。

尾节点:存放最后一个有效数据的节点。

尾指针:指向尾节点的指针。

12楼:匿名用户

q-.next=p;

把p的地址赋给q的下一个地址

while (q)

把q的下一个地址赋给r;

p的地址赋给q的下一个地址;

q的地址赋给p的地址

r的地址赋给q;

直到q->next的地址为0就结束循环

其实链表要自己多画画就直到怎么回事了

13楼:天云一号

q->next = p; 表示将节点p加入到节点q之后。

具体的意思可以参考如下的图形表示:

节点q----->节点p

一般链表的节点定义为:

structnode;

14楼:天地一孤鸿

把p(是指针,表示地址)赋给q的地址域。

15楼:匿名用户

前面没有说明r ,p,q是指向什么的指针啊,后面就难猜了

c语言链表中p=q->next与q->next=p的区别

16楼:千寻无言

p=q->next 使p指向q->next,p的值被改变,变为q->next

q->next=p 使p的值赋给q->next,q->next的值被改变,变为p

两者最后都指向同一地址,只是被改变的对象不同

17楼:匿名用户

p=q->next是把q后面的链表链接到p的后面;

q->next=p是把p链接到q的后面;

希望好好意会。

C语言中与的区别,c语言中“&”与“*”有什么区别?

1楼 匿名用户 是取地址 叫解引用,意思是取地址的内容 举例 int a 3 int b a 这里 表示取a的地址 b就是去b的地址的内容就是3 2楼 诡其辞 s形式表示取变量s的地址 a b形式表示a与b之间进行位与运算。 s形式表示指针变量指向的位置 a b形式 呵呵!不消说了。 3楼 匿名用户...

c语言中与有何区别,c语言中%c与%s的有什么区别?

1楼 匿名用户 在定义变量时 是定义指针 是引用 注 好象c没有引用 例如 int pvar null 定义一个int类型指针int var 0 int pvar var 定义一个引用 并且定义时要指定所引用的对象 在使用时 是解指针 即取其指向的变量的值 是取地址int var 10 int pv...

c语言中数组名和指针变量的区别,C语言中数组名和指针的区别

1楼 销 数组名除了sizeof会返回数组大小,其他的实况下是相当于一个指针常量无区别的 指针常量也就是说,不能改变数组名的值,比如int a 10 a a a a 10等都是非法的 c语言中数组名和指针的区别 2楼 匿名用户 数组在当作参数传递时,可以当作指针 当然,参数传递相当于赋值操作,所以用...