无头链表封装用二级指针封装

本文详细介绍了如何利用二级指针来封装无头链表,探讨了这种方法的优缺点,并通过实例代码展示了具体实现过程,帮助读者理解无头链表的管理和操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<stdio.h>
#include<stdlib.h>
/*无头链表:第一个节点存放数据,所以我们没有创建链表的过程,只有创建结点的过程,结点就可以做表头*/
/*先使用二级指针完成无头链表*/
struct  Node
{
   int    data;
   struct  Node*next;
}



struct   Node*createNode(int   data)
{
      struct  Node* newNode = (struct   Node*)malloc(sizeof(struct  Node));
     newNode->data=data;
     newNode->next=NULL;
     return  newNode;
}

//表头法插入
void   insertByHead(struct   Node**list, int  data)
/*在这里用二级指针,是因为在表头插入,会改变头结点(在这里是无头链表),所以也会改变表头指针*/
{
         struct   Node* newNode = createNode(data);
         newNode->next = (*list);
         (*list) = newNode;
}

void  printList(struct    Node*list)
{
       struct   Node*pMove = list;
       while(pMove)
       {
                 printf("%d\t",pMove->data);
                 pMove=pMove->next;
       }
       printf("\n");
}


int   main()
{
     struct   Node*list = NULL;  /*用一个指针指向表头,表示整个链表,且list永远指向新的节点*/   
     insertByHead(&list,1);      /*List是二级指针*/
     insertByHead(&list,2);
     insertByHead(&list,3);
      printList(list);


     system("pause");
     return  0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值