我是这样理解的:head是指向链表的一个节点,那么head->next就是第一个节点的指针域.如果另外的指针p,p=head;和p=head->next;分别表示什么?
我认为p=head;它指向了链表里的起一个节点(存的是第一个节点的地址);
p=head->next;它指向了链表里的起二个节点(存的是第二个节点的地址);
我这样理解对么?
因为做链表逆置的时候,有的时候写的是p=head;有的时候写的是p=head->next;,实在是很糊涂
NODE*creatlist(int a[ ])//建立链表
{ NODE *h,*p,*q; int i;
h=(NODE*)malloc(sizeof(NODE));
h->next=NULL;
for(i=0;i<N;i++)
{ q=(NODE*)malloc(sizeof(NODE));
q->data=a[i];
q->next=NULL;
if(h->next==NULL) h->next=p=q;//如果这里是h=p=q,两种情况建完以后有什么区别????
else { p->next=q; p=q; } }
return h; }
C语言中,头指针head,和head->next分别是什么?
很简单,head=p是把p的地址直接赋给head,而p=head->next是把head中的指针域即下一个节点的地址赋给head,你记住一点,next中存放的是下一个节点的地址,->是访问next的符号 “if(h->next==NULL) h->next=p=q;\/\/如果这里是h=p=q,两种情况建完以后有什么区别??? ”对于这个问题,h->ne...
head<> next是什么意思?怎么用?
1 ->在C语言中是结构体指针访问元素的操作符。所以这里,Head必须是一个结构体指针,而Next则必须是其中的一个元素。Head->Next就是对结构体指针变量Head取其成员变量Next的操作。2 =在C语言中为赋值操作符。在这里是将Head->Next赋值为NULL。3 NULL不是C语言的关键字,但是是定义在标准头文件中的...
在数据结构中,head->next->data表示什么意思
head表示头指针,head->next表示下一个节点,data表示这个节点的数据域;head->next->data就是head下一个节点的数据;因为head是指头节点,所以这个也代表着链表第一个元素的值。
c语言指针中next的用法?
像int一样都是类型的变量;他是定义的一个结构体指针,没有赋值时指向NULL;赋值后指向一个结构体地址;其功能是吧结构体关联起来,从本结构体可以找到下一个结构体。(就好像我这保存着你的地址,我可以找到你,你又知道别人的地址,我通过你就可以找到别人。)next也可以说只是个名,便于我们直观的...
C语言中p->next=head;是意思?
p->next=head;就是把 head 所指的结点,链接到 p 所指的结点的后面(即 p 的“下一个”,指向 head)。如果 p 所指的结点正好是 head 这个链表的尾结点时,通过这个语句,就把一个单向链表链接成了一个循环单链表。
C语言问题,求大神解答
\/\/头指针指向头结点,头结点的值无用,头结点的指针指向链表内第一个元素 \/\/当NULL == head->next时链表为空,当NULL == head时链表为无效链表 include <stdio.h> include <stdlib.h> typedef struct Node { int val;struct Node* next;}Node;void* _malloc(size_t size) { void* res =...
这样理解头指针对吗?
也有问题,应该是:head->next==null,head的值指向 头结点 ,头结点的指针成员next指向首结点(next保存首结点地址),根据next是否为空来作出判断。因此类中维护 链表 时必须时刻注意,当创建链表后必须将首结点地址赋值给head的next指针(链接),当链结点全部删除时,必须将head的next设置为null。
用c语言实现单链表的逆置,能将此程序详细的解释一下吗?
\/\/当最后一个的时候,还是要指向她的前一个。head->next->next=NULL;\/\/头指针的下一个是指向原来的第一个。逆向后肯定是最后的那个了。所以最后的一个的next=NULL就明了了。head->next=s;\/\/s是逆序前的最后一个,逆序后是第一个,所以用头指向他 画个图好好体会下,楼主!
C语言小问题:p2->next=p1->next 这个语句是什么意思,一般用在什么情况...
head=head->next;\/\/将首结点中指向下一结点的指针重新赋给head,这样首结点就脱离原链表了\/\/ else { p2->next=p1->next;\/\/这是什么意思???free(p1); (回答:这句话是用来删除结点在链表的中部或尾部的情况的。p1是要删除 的结点,p2是要删除的结点p1的前一个结点,p1->next存储的是下...
C语言链表很不明白,求详细说一下,非常感谢
(1).if(head==NULL)\/\/头指针为空 (2).Node *p = head;if(p->Data==val)\/\/插入点为第一个节点 (3).Node *q;while(p->Data != val)\/\/循环寻找插入节点 (4).if(p->next == NULL)\/\/插入节点是尾节点 删除操作:首先建两个指针,Node *p,*q;判断:(1).if(head == NULL)\/\/...