在一个单链表head中,一直p指向其中的一个结点,若要在它之前插入一个结点*s,则执行的运算是?
来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/19 18:10:24
在一个单链表head中,一直p指向其中的一个结点,若要在它之前插入一个结点*s,则执行的运算是?
我也是先学的~首先 你要明白 这个
链表结构 (L表头) (节点1) (节点2) (3) (4)
这里 L下一个指向节点1 ,节点1下一个为节点2;
L->next=节点1 ,节点1->next=节点2;
1.头插法的意思是把一个节点插到 L 和节点1 之间 ,让你插入的节点P 成为第一个节点 .
所以有了上面的p–>next=head–>next(节点1) ; head–>next=p ;
你现在想啊 head–>next=p ; p–>next=head–>next ;就不对了,执行了第一个后,head下一个就是p了 再执行 p–>next=head–>next 就矛盾了.
2,尾插法 么 你定义的p 开始和表头在同一位置,表是空的,所以
p->next=NULL;
执行 q= (LNode *)malloc(sizeof(LNode));
q–>data=data; /* 数据域赋值 */
q–>next=p–>next; p–>next=q; p=q ;
(head) .(p)
p一直是作为最后一个节点的,p指向空
你看 q->next=p->next 不就是q的指向空;
然后让p的下一个为q(p–>next=q;),不就是把q接到了表的末端,
再使 p=q,让p一直是链表的最后一个节点,才能后面不停的尾插入·
链表结构 (L表头) (节点1) (节点2) (3) (4)
这里 L下一个指向节点1 ,节点1下一个为节点2;
L->next=节点1 ,节点1->next=节点2;
1.头插法的意思是把一个节点插到 L 和节点1 之间 ,让你插入的节点P 成为第一个节点 .
所以有了上面的p–>next=head–>next(节点1) ; head–>next=p ;
你现在想啊 head–>next=p ; p–>next=head–>next ;就不对了,执行了第一个后,head下一个就是p了 再执行 p–>next=head–>next 就矛盾了.
2,尾插法 么 你定义的p 开始和表头在同一位置,表是空的,所以
p->next=NULL;
执行 q= (LNode *)malloc(sizeof(LNode));
q–>data=data; /* 数据域赋值 */
q–>next=p–>next; p–>next=q; p=q ;
(head) .(p)
p一直是作为最后一个节点的,p指向空
你看 q->next=p->next 不就是q的指向空;
然后让p的下一个为q(p–>next=q;),不就是把q接到了表的末端,
再使 p=q,让p一直是链表的最后一个节点,才能后面不停的尾插入·
在一个单链表中,若p所指结点不是最后结点,s指向已生成新结点,则在p之后插入s所指结点的正确操作是?
在一个带头结点的单循环链表中,p指向尾结点的直接前驱,则指向头结点的指针head可用p表示为head=
数据结构已知指针P指向双向链表中的一个结点(非首结点、非尾结点),则:(1)将结点S插入在P结点的直接
在一个单链表中,若在P所指结点之后插入S所指结点,则执行下列哪个?
数据结构题目:双链表中,在*p结点之后插入一个结点*s的操作是?
设指针p指向单链表中结点A,指针s指向被插入的结点X,则在结点A前面插入结点X是的操作序列为:
在双向循环链表中,若要在指针q所指结点的后面插入一个s所指结点,则须执行下列语句:s->prior=q;s->
已知带表头结点的单链表L,指针P指向L链表中的一个结点(非首、尾结点):删除P结点的语句序列是?
4.设指针变量p指向单链表中结点A,指针变量s指向被插入的结点B,则在结点A的后面插入结点B的操作序列为________
一个链表不知道头结点,有一个指针指向其中一个结点,请问如何删除这个指针指向的结点.
在循环双向链表中表头结点的左指针域指向()结点,最后一个结点的右...
已知带头结点的单链表L,指针P指向L链表中的一个结点为(非首结点、非尾结点),