/*
2020 11 19
目的 :创建一个链表
*/
# include "stdio.h"
#include<stdlib.h>
typedef struct linklistnode
{
int data;
struct linklistnode * next; //指针变量,指向结构体类型, 存放的是下一个结点的地址
}node;
void createnode_(node *head) //该函数形参为链表头
{
node *p;
p = (node*)malloc(sizeof(node));
node *cur;
cur = (node*)malloc(sizeof(node));
head->next = cur;
int num;
int i = 1;
while(1)
{
printf("请输入第%d个数\n", i);
scanf("%d", &num);
if(num == 1) //判断链表创建是否截止
break;
else
{
cur->data = num;
cur->next = NULL;
p->next = cur;
p = cur;
i++;
}
}
}
int main()
{
node *head;
head->next = NULL;
head = (node*)malloc(sizeof(node));
createnode_(head);
}
目前对
p->next = cur;
p = cur;
理解困难
目前的强制理解是
p移动到cur,而p的next中存放的是原cur的地址,说明把cur往后移动一位
从而可以输入下一个cur