链表的创建

链表的创建分为头插法和尾插法
头插法:
1、含头结点

#include<stdio.h>s
struct node
{  
   int data;
   struct node * next;
};
typedef struct node linknode;
typedef linknode * linklist;

linklist creatlink()
{
   linklist head,p;
   int x;
   head=(linklist)malloc(sizeof(linknode));
   head->next=NULL;
   scanf("%d",&x);
   while(x)
   {
      p=(linklist)malloc(sizeof(linknode));
      p->data=x;
      p->next=head->next;
      head->next=p;
      scanf("%d",&x);
   }
   return head;
}   

2、不含头结点

linklist creatlink()
{
   linklist head=NULL,p;
   int x;
   scanf("%d",&x);
   while(x)
   {
      p=(linklist)malloc(sizeof(linknode));
      p->data=x;
      p->next=head;
      head=p;
      scanf("%d",&x);
   }
   return head;
}      

尾插法:

linklist creatlink()
{
   linklist head,p,tail;
   int x;
   scanf("%d",&x);
   head=tail=NULL;
   while(x)
   {
      p=(linklist)malloc(sizeof(linknode));
      p->data=x;
      if(head==NULL)
         head=tail=p;
      else
      {
         tail->next=q;
         tail=q;
      }
      scanf("%d",&x);
   }
   if(tail)
      tail->next=NULL;
   return head;
}               

头插法创建的链表:输入的一组数与输出的一组数的顺序是相反的。
尾插法创建的链表:输入的一组数与输出的一组数的顺序相同。

链表的输出函数输出函数:

void print(linklist head)
{
   linklist p=head;
   while(p)
   {   
      printf("%d  ",p->data);
      p=p->next;
   }
   printf("\n");
}      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值