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

1.3.6 节点的插入

函数Insert()用于将节点x插入链表的第i个位置,参考代码如下。

 1    Link Insert(Link Head,int x,int i)      //插入节点x到第i个位置
 2    {
 3      Link NewPoint=new Lnode;              //新建节点,new用于动态开辟内存空间
 4      NewPoint->data=x;                     //为节点赋值
 5      if(i==1)                              //如果插入位置为第一个节点位置
 6      {
 7        NewPoint->next=Head;
 8        Head=NewPoint;
 9      }
10      else
11      {
12        int j=1;
13        Link p=Head;
14        while(j<i-1 && p->next!=NULL)       //找到i-1处
15        {
16          p=p->next;
17          j++;
18        }
19        if(j==i-1)
20        {
21          NewPoint->next=p->next;
22          p->next=NewPoint;
23        }
24        else  printf("插入节点失败,输入的值错误!");
25      }
26      return Head;
27    }