记录自已学习之单链表(创建)

前段时间,我看见许多在问答社的人都在问链表相关的题,正好我也打算写点链表的东西。这次首先是写一个创建链表的函数吧,由于我是听朱老师的课来的,所以这里先提出来。链表就是一种数据结构,需要有一个指针指向后面的一个节点(结构),这样确保它是一条链也就是说你能从头的访问链表,因为是只有指向下一个节点的方向,它也只能从前往后的一直查看(其实还有双向链表的)。
//创建链表的小函数
#include <stdio.h>
#include <stdlib.h>


typedef struct node
{
  int num;
  struct node *pNext;
}Node;


//创建节点函数的声明
Node *create_node(int cnt);


int main(void)
{
//定义一个头指针,指向第一个节点
  Node *pHeader = NULL;

  pHeader = (Node *)malloc(sizeof(struct node));
  if (NULL == pHeader)
  {
    printf("malloc failure\n");
    return 0;
 }

//由于头指针一般不存数据,所以赋值为0
  pHeader->num = 0;
  pHeader->pNext = create_node(1);
  pHeader->pNext->pNext = create_node(2);
  pHeader->pNext->pNext->pNext = create_node(3);

  printf("num = %d\n", pHeader->pNext->num);
  printf("num = %d\n", pHeader->pNext->pNext->num);
  printf("num = %d\n", pHeader->pNext->pNext->pNext->num);

  return 0;
}


//创建节点函数
Node *create_node(int cnt)
{
  Node *Tmp = NULL;

  Tmp = (Node *)malloc(sizeof(struct node));
  if (NULL == Tmp)
  {
   printf("In create_node, malloc failure\n");
   return NULL;
  }

//将函数的传参赋值,并将pNext指向NULL
  Tmp->num = cnt;
  Tmp->pNext = NULL;
  return Tmp;
}

最后我觉得朱老师这种创建头指针的方法很好,至于这么好,我会在后面的博文继续说。由于创建结构,需要涉及到malloc来为结构申请一块内存。在堆中,内存是有限的,很有可能你会在某一次申请内存会失败,所以做好malloc返回值的检查是很有必要的。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值