单链表中L->next=s ; 和L=s;的区别 ,其中L是头指针,初始L=null,

作者&投稿:宜慧 (若有异议请与网页底部的电邮联系)
单链表中L->next=s;和L=s;的区别,其中L是头指针,初始L=null,~

希望对你有帮助!L是指针,L=s代表L的值赋值为s,L->next=s表示L所指向对象的next成员的值赋值为s。如果L=NULL,那么L->next=s将会发生非法访问,属于未定义行为,具体行为视编译器和操作系统有所不用,不过现在的操作系统多数运行在保护模式下,这种非法访问会导致程序直接被操作系统结束掉。

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的后接节点。中间逻辑建议画图理一遍,理顺了以后再见到就能很快看明白的。

根据链表的结构来分析~
struct Link{
int data;
struct *next;
};

然后我们定义一个 链表 Link L=NULL; 这句话的意思就说,我定义了一个指针 L,L指向内存中以Link 结构形式开辟的一块空间的地址,当你将NULL赋值给L,表示L不指向空间的任何位置。即,我们定义了一个空链表。

L->next 是典型的用指针访问数据的形式,L->next=s表示将s的地址记录进L的指针域中,而L=s则是将s的地址给L,行为是舍弃头节点,将s作为新的头节点。

如果你移动了头指针,那么头指针新位置之前的所有节点都将丢失,一般移动头节点都发生在销毁链表的时候,否则不会轻易的移动头指针,不过如果你是自定义的指针让他指向头节点,那是没关系的。。。。

希望对你有帮助哦~

L是指针,L=s代表L的值赋值为s,L->next=s表示L所指向对象的next成员的值赋值为s。如果L=NULL,那么L->next=s将会发生非法访问,属于未定义行为,具体行为视编译器和操作系统有所不用,不过现在的操作系统多数运行在保护模式下,这种非法访问会导致程序直接被操作系统结束掉。

L->next = s 的意思是指针L指向的下一个结点是指针s。 L=s是把指针s赋给指针L,既赋值。
L=null意味着这个链表的data部分是任意值,可能是0,next里面也存放的是一个任意值;表示链表的未尾,链表就此结束。。

L=null;表示指针L不指向任何一个节点,也就是说L是一个空链
L->next=s 表示指针L的下一个结点是s
L=s 表示L和s指向同一个结点

一般链表头部第一个数据域为空,仅含一个指针域,所以会是L->next=s;


带头指针L的双向循环链表中,指针p指向双向循环链表的尾结点的条件是...
C.L->prior==p L为头指针,即L指向最开头那个节点,因为是循环链表,所以尾结点必然是头结点前一个节点。这样应该有这样的关系: 尾结点->头结点。又因为链表是双向的,所以头结点应该有指向尾结点的指针,即:尾结点<-头结点。如果P指向尾结点,则有P->next == L,而L->prior(这是L指向...

...还有p=L->next;是什么意思,这两个语句有什么区别,L为链表的头...
而所谓链表就是一串节点连在一起,像数组一样,比数组的优点就是比如在数组中间要插入一个数的话,插入位置之后的每一个元素都要向后移一位,而链表的话只需要修改插入位置前的节点的指针就可以了。你这里的两个语句都是简单的赋值,p = L;就是把让自己定义的Node p = 头结点,而p = L->...

带头结点的循环双链表L中只有一个元素结点的条件是?
带头结点的循环双链表L中只有一个元素结点的条件是(B、L→next→next=L)因为下一个节点的下一个节点是头结点说明头结点后面只有一个节点。每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。

单链表销毁时,最后一句L=NULL是什么意思?
L是一个指针,它指向一个内存空间,这个空间虽然释放了,但是L仍然指向那个地址。置L为 "空"是避免误调用。

数据结构+L为线性链表++那么L.head和L->haed有什么区别
L.head和L->head分别代表一个引用型,一个指针型。

L.data[i]和L->data[i]有什么区别,谢谢
前者L是结构体变量,data【i】是结构体里的一个 据说这是指向结构体里的一个

void creat(Linklist *&L,int a[],int n)
而链表结束则是通过指针为NULL来判断的。从你的程序来看,是创建链表并赋值的。这里L->next=NULL;就是给链表先确定尾,然后你再通过不断插入数据来增加链表内容,这样有头有尾链表才完整。还有看看你函数参数使用的Linklist *&L,你再仔细看看有没有问题,应该是多了个取地址操作。

单链表中的L是什么意思?
看函数怎么写了,有时候是头接点,有时候写成第一个接点

数据结构链表问题,1.不太会使用struct结构体,不明白第一张图片中SeqLi...
数据结构链表问题,1.不太会使用struct结构体,不明白第一张图片中SeqList是什么类型。2.void initList(SeqList& L)函数中参数L是什么类型啊。那如果要调用这个函数,怎么new一个指针传入initList函数中?3.第一张图片中,data是指针类型,为什么initList函数中能new出数组的来?data并没有声明的是...

在c语言中,s->next=L和s=L->next的区别
这两个的含义当然不一样了。s->next = L 表示的是将 L 的内容赋给 s->next 指针;而 s = L->next 表示的是将 L->next 指针赋给 s 变量。这两个意义绝对不能够混为一谈,必须要仔细阅读、并跟踪源程序,否则在进行链表操作时肯定会出现问题的。

怀柔区18350562905: 单链表中L - >next=s;和L=s;的区别,其中L是头指针,初始L=null,
可宰那他: 希望对你有帮助!L是指针,L=s代表L的值赋值为s,L->next=s表示L所指向对象的next成员的值赋值为s.如果L=NULL,那么L->next=s将会发生非法访问,属于未定义行为,具体行为视编译器和操作系统有所不用,不过现在的操作系统多数运行在保护模式下,这种非法访问会导致程序直接被操作系统结束掉.

怀柔区18350562905: C语言头插法建立单链表 -
可宰那他: 1. 所谓头指针即为指向链表第一个节点的指针(若链表含有头结点,则指向头结点),该指针变量的值即为链表第一个节点(或头节点)的地址 ,故对于你这段代码来说头指针L存放的是链表第一个元素的地址(因为没有头节点),若要将s所...

怀柔区18350562905: 单链表的头尾插入法
可宰那他: 我也是先学的~ 首先 你要明白 这个链表结构 (L表头) (节点1) (节点2) (3) (4) 这里 L下一个指向节点1 ,节点1下一个为节点2; L-&gt;next=节点1 , 节点1-&gt;next=节点2;1.头插法的意思是把一个节点插到 L 和节点1 之间 ,让你插入的节点...

怀柔区18350562905: 数据结构单链表 -
可宰那他: 单链表是一个动态存储结构,建立单链表需要动态分配存储空间,依次建立各节点.我想你说的初始化单链表应该是对各个节点的数据域赋初值吧.可以用自定义函数CreateList_L()完成.在主函数main()中可以先调用CreateList_L()建...

怀柔区18350562905: 已知L是带表头结点的单链表的头指针,摘除首元结点的语句是 - 上学吧...
可宰那他: Node *ptmp = P-&gt;next;P-&gt;next=S;S-&gt;next=ptmp;

怀柔区18350562905: 有一个单链表L(数据域的值肯能相同),编写函数int index - x(head *L,datatype x),查找数据域为X的结点在
可宰那他: int index_x(head *L,datatype x){ LNode p=L-&gt;next;//在带空数据域的头结点链表中使用,否则可以省去. int i=0; while(p-&gt;data!=x&amp;&amp;p) { i++; p=p-&gt;next; } /* if(p!=NULL) {cout&lt;&lt;"数据域为X的节点的位置在"&lt;&lt;i&lt;&lt;endl;} else { cout&lt;&lt;"链表不存在数据域为X的节点"&lt;&lt;endl;} */ if(p!=NULL) return i; else return 0;//表示没有找到节点. }

怀柔区18350562905: 实现单链表的建立,插入,删除,查询,求长度的基本操作 -
可宰那他: typedef int ElemType;//定义结点类型//typedef struct Node {ElemType data; //单链表中的数据域 //struct Node *next; //单链表的指针域 // } LinkList; LinkList*H,*P;//单链表的建立,尾插法建立单链表// LinkList *CreateLinkList() ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网