zoukankan      html  css  js  c++  java
  • 单向链表的建立(2)

    链表的建立可以使用尾插法,也可以使用头插法,头插法就是从头节点开始,向前扩展节点,最后生成带头节点的单向链表,使得内容与输入相反。

    链表的定义与(1)中相同,这里只介绍链表的建立函数。

     1 LNode *create(int n)
     2 {
     3     int m;
     4     LNode *head=(LNode *)malloc(sizeof(LNode));
     5     LNode *tail=(LNode *)malloc(sizeof(LNode));
     6     LNode *p;
     7     head->next=NULL;
     8     for(int i=0;i<n;i++)
     9     {
    10         p=(LNode *)malloc(sizeof(LNode));
    11         scanf("%d",&m);
    12         p->data = m;
    13         p->next=head->next;
    14         head->next=p;
    15     }
    16     return head;
    17 }

    开始一定要为头节点申请内存空间,并赋值他的后继节点。

    例如,我们输入1,2,3,4,5

    输入1时

    12行:p节点赋值1

    13行:p节点指向head节点的后继(此时为空),即p指向了空

    14行:head指向p

    这样形成了,head(空)指向p,p指向空的链表

    输入2时

    12行:p节点赋值2

    13行:p节点(2)指向(1)节点

    14行:head节点指向p节点

    这样每次保证head节点指向最新插入的节点,形成了倒序,head中没有数据。

  • 相关阅读:
    (转)Maven实战(三)Eclipse构建Maven项目
    刷欢乐豆的方法
    R-pie()
    R-plot()
    10只老鼠与1000瓶药水
    资源共享
    第一只python小爬虫
    正则表达式之python实现
    马踏棋盘之贪心算法优化
    八皇后之回溯法解决
  • 原文地址:https://www.cnblogs.com/wktwj/p/4869957.html
Copyright © 2011-2022 走看看