将所指节点插入到链表末尾

将所指节点插入到链表末尾,第1张

把S结点插入到链表末尾,结果应该是这样的

所要做的工作就是,把F值所在的结点的next指向s结点,并且把s结点的next指向NULL

所以,有以下方法:

1>对应B选项

   把s结点的next指向null即:s->next = '\0'

   把p指针指向F所在的结点,也就是p结点的next指针所指向的结点:p = p->next

   把F所在的结点的next指向s结点;

2>对应C选项

   p指针指向F所在的结点:p = p->next

   s结点的next指针指向p->next,也就是NULL:s->next = p->next

   把F所在的结点的next指向s结点;

3>对应选项D

   这个选项其实和C选项采用的方法是一样的,只不过取值的方式不一样,C选项用指针取值的,而D选项首先把指针的所指向的地址给拿出来,在对其取值,相当于普通变量。所以C选项用的是'->'而D选项用的是'.'

加分了

#include<stdio.h>

#include<stdlib.h>

class point //节点类

{

public:

int a //节点值

point *next//next指针

}

void newlast(point *&p,int i) //在*p所指的链表的最后新建一个值为i的节点

{

point *q,*o

q=p

while(q->next)

{

q=q->next

}

printf("%d\n",q->a)

o=(point *)malloc(sizeof(point))

o->a=i

q->next=o

o->next=NULL //结束标记

}

void show(point *p)//输出指针p所指链表

{

point *q

q=p

while(q)

{

printf("%d\t",q->a)

q=q->next

}

printf("\n")

}

int main()

{

point b1,b2,b3

point *p

b1.a=1

b2.a=2

b3.a=3

p=&b1

b1.next=&b2

b2.next=&b3

b3.next=NULL //结束标记

show(p)

newlast(p,4)

show(p)

return 0

}

下面的程序是单链表的建立与输出,都有详细的注释,相信你能看的懂

但要想学习链表必须得掌握了一定的C语言基础

下面这个链表的作用是建立5个结点的单链表,5个结点的值输入以后,依次输出各个结点的值

#include<stdio.h>

#include<stdlib.h>

//链表的建立与输出

struct node//定义结点的类型

{

int num,score

node*link

}

void main()

{

node*creat(int n)//函数原型声明

void print(node*h)//函数原型声明

node*head=0//定义链头指针并初始化

head=creat(5)//调用creat函数创建链表

print(head)//调用print函数输出链表

}

node*creat(int n)

{

node*h=0,*p,*q

int i

for(i=1i<=ni++)

{

q=(node*)malloc(sizeof(node))//分配一个结点空间

scanf("%d%d",&q->num,&q->score)//输入新结点的值

q->link=0//新结点的指针域置0

if(h==0)

h=q//第一个结点作为链头结点

else

p->link=q//新结点添加到链表的末尾

p=q

}

return h//返回链头指针

}

void print(node*h)//链表输出函数的定义

{

while(h)//当指针h非空时输出h所指结点的值

{

printf("num=%d\tscore=%d\n",h->num,h->score)

h=h->link//使h指向下一个结点

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11665271.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存