动态链表--头插法改进

  1 #include<stdio.h>
  2 #include<stdlib.h>
  3 
  4 struct test
  5 {
  6         int data;
  7         struct test *next;
  8 };
  9 
 10 void printLink(struct test *head)
 11 {
 12         struct test *point = head;
 13         while(point !=NULL ){
 14                 printf("%d ",point->data);
 15                 point = point->next;
 16         }
 17         putchar('\n');
 18 }
 19 
 20 struct test* insertFromHead(struct test *head,struct test *new)
 21 {
 22         if(head==NULL){
 23                 head = new;
 24         }else{
 25                 new->next=head;
 26                 head=new;
 27         }
 28         return head;
 29 
 30 }
 31 
 32 struct test* createLink(struct test *head)
 33 {
 34         struct test *new=NULL;
 35 
 36         while(1){
 37                 new =(struct test*)malloc(sizeof(struct test*));
 38                 printf("please input a new \n");
 39                 scanf("%d",&(new->data));
 40                 if(new->data==0){
 41                         free(new);
 42                         return head;
 43                 }
 44                 else{
 45                         head=insertFromHead(head,new);
 46                 }
 47         }
 48 }
 49 
 50 int main()
 51 {
 52         struct test *head=NULL;
 53         head = createLink(head);
 54         printf("result:\n");
 55         printLink(head);
 56 
 57         struct test t1={100,NULL};
 58         head = insertFromHead(head,&t1);
 59         printf("result2:\n");
 60         printLink(head);
 61         return 0;
 62 }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值