链表的创建方法-----head为空

来源:互联网 发布:5年级简易算法视频 编辑:程序博客网 时间:2024/05/21 16:23

0.前言:

    关于链表的建立,是很容易忘的一件事,或者说,链表本身就很容易让人忘记,所以在这里认真巩固一下,避免再次遗忘。


1.要点:

    1)“使用malloc函数创建链表中的内存”,这个知识点是我们一定要明确的,我们如果仅struct node *head,这说明仅创建了个指向结构体地址的变量,而这个结构体自身是不存在的,所以对于head我们也要用指针来说明。

 head=(struct node *)malloc(sizeof(struct node));
     2)“head头部本身不存储数据”,这样的好处是可以让我们有个“缓冲”,避免误操作之类的影响数据

    3)“函数的构建”,函数返回头部的结构体指针,而传递的参数是要建立的个数,这个你一定要明确的。

    4)“使用t->next==NULL来判断尾部,并非结束输出”,这是用来判断链表的结尾的,并不是用来作为判断条件结束循环的,这个思路你是要明确的。

    5)为了实现上步,在建立节点的时候你应该注意规范让t->next=NULL;加上没坏处,虽说不加可能不会改变结果,但以防万一还是加上!

 p=(struct node *)malloc(sizeof(struct node));        p->next=NULL;


2.代码:

struct node* creat(int n){    int i;            struct node *head,*q,*p;    head=(struct node *)malloc(sizeof(struct node));    q=head;    for(i=1;i<=n;i++)    {        p=(struct node *)malloc(sizeof(struct node));        p->next=NULL;        scanf("%d",&p->data);        q->next=p;        q=p;    }    return head;}






阅读全文
0 0