动态创建链表主要思想:定义三个执行结构体类型数据的指针,head,p1,p2,当输入的值p1->num不为0并且为第一个节点的时候,把该节点赋给头结点
p1这个指针,主要是用来指向刚输入过数据的节点,p2这个指针,主要负责把p1刚输入的数据的这个节点加到链表中来。当输入为0时程序结束,返回头结点,具体流程如下:
当我们输入:
1001,23,4
1002,34.5
1003,45.6
0,0
执行过程:
1.定义p1,p2并输入1001,23,4初始化p1,然后判断p1->num是否为0,不为0继续执行,程序中的n为记录节点个数
当节点数n==1的时候,把p1赋给头结点,p2->next = p1;此时p2 = head,也就是第一个节点
2.继续执行,输入1002,34.5,并初始化p1,此时n==2,执行p2->next = p1,也就是head->next = p1;就把p1新初始化的这个节点加入到链表中去了,然后p2 = p1,把p2指针又移动到最后一个节点,接续执行
3.添加第三个节点,与上面第2步一样
4.输入0,0创建链表结束
5.调用print函数打印链表,将头指针传过去,然后遍历打印链表
#include<std