信息学竞赛宝典:数据结构基础
上QQ阅读APP看书,第一时间看更新

1.3.1 链表的建立

建立链表之前,Head指向NULL。链表建好后,每次新建一个节点连接到链表时,首先使NewPoint(新建节点)的指针域指向Head指向的地址,再将Head指向NewPoint的地址,如图1.2所示。

图1.2

链表建立函数应该返回节点指针,其输入参数也应该是节点指针,参考代码如下。其中第6行的关键字new表示要在内存中开辟一个新的空间,该空间用于保存NewPoint。

 1    Link Create(Link Head)                         //建立链表
 2    {
 3      int newData;
 4      while(1)
 5      {
 6        Link NewPoint=new Lnode;//开辟空间保存NewPoint,如果失败,NewPoint=NULL
 7        printf("输入链表元素: 结束输入'-1'\n");
 8        scanf("%d",&newData);
 9        if (newData==-1)                           //如果输入-1,则创建完毕
10          return Head;                             //返回Head
11        NewPoint->data=newData;                    //赋值给节点
12        NewPoint->next=Head;                       //NewPoint连接到链表头
13        Head=NewPoint;                             //更新Head,即指向NewPoint
14      }
15    }