建立链表时,p->next=s;与p=s;有什么区别??分别是什么意思???

作者&投稿:移图 (若有异议请与网页底部的电邮联系)
单链表中p->next=s->next和p->next=s有什么不同?~

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

p是p,p->next是p->next。p的下一个节点(p->next)指向s,此时p->next相当于最后一个节点,p=s是要让下一次能再接一个节点,如此循环。

首先把s指向p后面的一个节点,就是把s接到p后面
然后把p指向s这个节点,就是把p指向p后面这个节点
这两句话执行后就是p=s=之前的p->next

就是把p指向的结点里的next指针指向s,p指向的是最后的一个结点,现在最后的结点是s,所以改变p的指向,让p指向了s,下次循环又是一样,


单链表中p->next=s->next和p->next=s有什么不同?
如果s是一个链表的第一个结点,p是一个单独结点的话p现在就是第一个结点了!通常更新头结点就用第二个方法,先分配新结点p给p的数据赋值,p->next=s,Head=p;这是头插法;直接找到最后一个结点p;p->next=s这是尾插法;总之前一个用于删除结点较多,后一个多用于插入结点。

双向链表,插入结点p->llink.rlink啥意思
llink是一个结构体,也就是链表的节点,双向链表具有两个指针,一个左指针,一个右指针。这里的llink.rlink就是右指针的赋值。

数据结构单链表的 p->next 跟p->data分别表示什么意思
链表的节点包含两个要素:数据域:要存储的数据,可以是多数据,当然您说的p->data是一个数据 指针域:指向下一个节点的地址,无下一个节点的话一定要为NULL;

求数据结构中以下语句的意思:(L链表,P节点)Q=P, P=L, Q=P->next,L=...
P,Q,L,S,P->next都是指向结点的指针类型。Q=P, 是将P的值赋值给Q,也就是P和Q指向同一个结点。P=L,是将L的值复制给P,也就是P和L指向同一条链表。Q=P->next;按照上边给出的P结点,则Q就是空指针。

我不明白,p–>,为什么有的时候表示p节点的后继,有的时候表示p的下个节...
p节点的后继 和 p的下一个节点 不是指的一个东西吗???链表的结构 struct LinkList { Type data;struct LinkList *next;};每个节点的内容就是上面这个东西,然后链表的操作就是指向这个东西的指针在链表上面移动以达到操作(插入、删除)的目的。p->data表示p当前指向的那个节点里面的数据...

p->next=s这一步的意义是什么,这里是如何实现指针p向后移动的,求...
每个链表结点有data域和指针域,p->next就是指针域,存放下一个结点的地址,指针域等于s,就是把s结点的地址存到了next里面,就是把s连接到了链表上,p=s就实现了p向右移动一位

c语言,中p->next->next合法么? p-data=q->data合法么?
如果考虑全面的话,有时候是不合法的,比如p所在的位置是链表的最后一个结点或者链表中有0个结点。当然大部分还是合法的,你可以编一个小程序运行一下,下面的是我编的一个小程序,你可以运行一下 我先说一下运行结果:当p结点后面有两个或两个以上的结点时,就能够准确的输出所有的值;当p结点后面...

关于C语言链表:p->next是表示指向下一个位置的结点还是p本身的存储域...
是单链表吗?如果是单链表,p->next指向下一个结点,p->next=q->next是指将q->next所指的结点m(q的下一个结点)的地址赋给p->next ,也就是p的下一个结点变成m

请教高手个问题,能不能解释一下“p->link=s”s到底是把啥赋值给了p s...
定义的结构体是链表节点 每一个节点都有一个后继指针指向下一个节点 p->link=s里,p是前一个节点的指针,s是新建立节点的指针,但是这2个节点现在还没有连在一起,所以要通过link指针把它们连起来,才能形成链表,link就是p的后继指针 s->link=NULL的作用的把当前新建立的节点的后继指针指向空...

数据结构p->next->piror什么意思
这个是双向链表表示 p->next代表节点p所指向的后继节点,p->piror代表节点p所指向的前趋节点 p->next->piror就是p所指向的后继节点的前趋节点,一般情况下就是p自身 在处理删除节点和插入节点时候,用这条语句改变链接关系

杞县17335735783: c语言链表中总出现一个p - >next是什么意思啊 -
宇文咸内障: 意思就是....这个东西是这个单元的尾部,把哪个单元的头部赋值给它,这个单元紧接的就是谁,一般是用q

杞县17335735783: C语言中p=p - >next;语句是什么意思?一般作用是什么? -
宇文咸内障: p=p->next是表示修改指针p的位置,把p指向原来的下一个节点. 作用是: p1-p2-p3-....... p1->next=p1,那么链表就断了,p2,p3会找不到了,链表变成了 p1--| |-----|.->[0000]->[1111]->[2222]->[3333]->........ | p 开始时p指向节点[0000],那么p->...

杞县17335735783: 下面c程序中else { p - >next = q;p = q; } 这一句是什么意思?
宇文咸内障: 这是数据结构中的链表,链表中包括一个数据域和一个指针域next, p->next=q;表示p的next域指向q,p=q;表示p和q指向同一个节点;本打算画个图给你看,电脑上不太会画.你找本数据结构的书看看吧,这个是尾插法建立单链表的算法.h = p = q;这句话先将头指针h和尾指针指向q.

杞县17335735783: 下面建立链表的函数中p - >next=f;p=f;这两句是什么意思 -
宇文咸内障: p表示当前指针,f表示下一节点指针 在for循环里,先构建下一个节点f,读入f数据,接着把当前节点p的尾指向下一节点f,然后就以f作为当前节点开始下一次循环,于是就有p=f,在新的循环里f变成了新节点的头地址.如此循环,第一个p加上循环的n-1个一共n个节点创建完毕后,将当前指针即最后一个节点的尾指向NULL

杞县17335735783: 链表p - >next,这个next是不是关键字啊,它是怎么实现指向下一个链表的呢? -
宇文咸内障: 也许是用new给next申请的空间吧p->next=new node; 这里p是指向一个node变量的指针,->运算的意思是指向该node变量中的next数据成员 next也就是指向下一个node变量的指针

杞县17335735783: c语言创建链表那里p - >next还有很多类似的,该怎么理解, -
宇文咸内障: (1) 概念 线性链表,单链表,结点;数据域,指针域;头指针,头结点.(2) 特点 用指针表示数据之间的逻辑关系(逻辑相邻的元素物理位置不一定相邻).(3) 类型定义 简而言之,“数据+ 指针”.typedef struct LNode{ DataType data; struct ...

杞县17335735783: C语言链表中q - >next=p;表示什么意思? -
宇文咸内障: q->next = p; 表示将节点p加入到节点q之后.意思:使当前指针指向链表的下一个结点.一般作用在数据结构中的单链表里由应用,语句中的p一般指向一个结构体类型的数据,此类型的数据通常表示节点;结构体里存放的一些数据和记录下一...

杞县17335735783: C语言中如何创建一个给定长度的链表
宇文咸内障: main() { List *p; p=creaList(n); } Lisp *creaList(int n) { List *pL; for(i=0;i<n;i++) addList(pL); return pL; } void addList(List *pL) { void *p=pL; /*lookup tail*/while(p->next!=NULL){p=p->next;} p->next=malloc(sizeof struct List); /*initialize p->next*/ memset(p->next,0,sizeof struct List); }

杞县17335735783: 线性链表
宇文咸内障: #include<stdio.h> #include<malloc.h> #include<stdlib.h> typedef struct LNode { int data; struct LNode *next; }LNode,*LinkList; void init(LinkList &L); //初始化链表函数 void input(LinkList &L); //建立链表函数 void insert(...

杞县17335735783: c语言链表: 链表里p - >next是怎么指向下一个结点的呢,它是怎么得到下一个结点的地址...求详细
宇文咸内障: 是组建链表时候得到的,你是逆着来想这问题了吧 ~~ 以下是例子 struct s { int num; double score; struct s *next; }a,b,c; struct s *head; a.num=10000;a.score=99; b.num=10010;b.score=0; c.num=10086;c.score=59; head=&a; a.next=&b;b.next=&c;c.next=NULL;

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