【数据结构】9 单链表的创建

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zztingfeng/article/details/90343130

单链表的创建方法有两种:头插法和尾插法。        
头插法是将新增结点插入第一个结点之前,示意图如下:

尾插法是将新增结点插入最后一个结点之后,示意图如下:

代码片段

//用头插法创建带头结点的单链表
    void LinkedListCreateHeadL(LinkedList L, ElemType a[n])
    {
      L=(LNode *)malloc(sizeof(LNode));
      if(L==NULL)
      {
        printf("申请空间失败!");
        exit(0);
      }
      L->next=NULL;

      for(i=0; i<n; i++)
      {
        p=(LNode *)malloc(sizeof(LNode));
        if(p==NULL)
        {
          printf("申请空间失败!");
          exit(0);
        }

        p->data=a[i];
        p->next=L->next;
        L->next=p;
      }
    }
    //用尾插法创建带头结点的单链表
    void LinkedListCreateTailL(LinkedList L, ElemType a[n])
    {
      L=(LNode *)malloc(sizeof(LNode));
      if(L==NULL)
      {
        printf("申请空间失败!");
        exit(0);
      }
      L->next=NULL;
      tail=L;         //设置尾指针,方便插入

      for(j=0; j<n; j++)
      {
        p=(LNode *)malloc(sizeof(LNode));
        if(p==NULL)
        {
          printf("申请空间失败!");
          exit(0);
        }

        p->data=a[j];
        p->next=NULL;
        tail->next=p;
        tail=p;
      }
    }

猜你喜欢

转载自blog.csdn.net/zztingfeng/article/details/90343130