//话不多说直接上代码
#include<stdio.h>
#include<stdlib.h>
typedef struct ac
{
int num;
ac *pnext;
}*ak;
int main()
{
int n;
scanf("%d", &n);
ak head, p, q;
int i;
p = (ak)malloc(sizeof(ac));
scanf("%d", &p->num);
head = p;
for (i = 2; i <= n; i++)
{
q = (ak)malloc(sizeof(ac));
scanf("%d", &q->num);
p->pnext = q;
p = q;
}
q->pnext = NULL;
ak c;
c = head;
while (c!=NULL)
{
printf("%d ", c->num);
c = c->pnext;
}
return 0;
}
下面一张图片来说明一下(图片来自百度图片,跟我用的变量不一样,但是可以看懂)
说明,先在外面申请一个空间输入第一个元素,并把这个地址赋值给head,当做头,之后在循环里边输入其他的元素
在循环输入之后要完成当前指针指向下一个,也就是p->next=q;之后,把q的值给p,方便下次完成p->next=q;
最后在外边让q->next=NULL,作为链表结束的标志。
再说一下怎么遍历整个链表,用p做更新,先让p=head,从头开始遍历,在循环里p=p->next,更新指针;
//第一次写,写的不好,见谅。
/*写在后面的话,我之前记笔记一直用的是NoteOne,同步慢吧,我可以忍。但是现在,时不时忽然不见了,这是跟我玩心跳,
我玩不起了,拜拜*/