• C语言实现单链表(带头节点)


    C语言在实现单链表存储时需要注意的几点:

    1.定义结构体,typedef:用于给结构体另命名

    // 定义结构体类型
    typedef struct Node{
      int data;
      struct Node *next;
    }Node,*LinkedList;

    2.链表初始化

    // 链表初始化
    LinkedList LinkedListInit(){
      Node *Head,*L,*LNew;
      // 申请节点空间
      Head = (Node *)malloc(sizeof(Node));
      // 判断是否有足够内存空间
      if(Head == NULL){
        printf("申请空间失败
    ");
        exit(-1);
      }
    
      L = Head;
      L->next = NULL;
    
      for(int i=0;i<3;i++){
        // 分配第一个节点
        LNew = (Node *)malloc(sizeof(Node));
        // 判断是否有足够内存空间
        if(LNew == NULL){
          printf("申请空间失败
    ");
          exit(-1);
        }
        LNew->data = i;
        L->next = LNew;
        LNew->next = NULL;
        L = LNew;
      }
    
      return Head;
    }

    具体源码demo.c

    #include <stdio.h>
    #include <malloc.h>
    #include <stdlib.h>
    
    // 定义结构体类型
    typedef struct Node{
      int data;
      struct Node *next;
    }Node,*LinkedList;
    
    
    // 链表初始化
    LinkedList LinkedListInit(){
      Node *Head,*L,*LNew;
      // 申请节点空间
      Head = (Node *)malloc(sizeof(Node));
      // 判断是否有足够内存空间
      if(Head == NULL){
        printf("申请空间失败
    ");
        exit(-1);
      }
    
      L = Head;
      L->next = NULL;
    
      for(int i=0;i<3;i++){
        // 分配第一个节点
        LNew = (Node *)malloc(sizeof(Node));
        // 判断是否有足够内存空间
        if(LNew == NULL){
          printf("申请空间失败
    ");
          exit(-1);
        }
        LNew->data = i;
        L->next = LNew;
        LNew->next = NULL;
        L = LNew;
      }
    
      return Head;
    }
    
    
    int main(int argc, char const *argv[]) {
      /* code */
      Node *p;
      p = LinkedListInit();
      p = p->next;
      while(p != NULL){
        printf("%d
    ",p->data);
        p = p->next;
      }
    
      return 0;
    }

  • 相关阅读:
    vim替换
    vim 常用快捷键 二
    vim撤销
    让你提升命令行效率的 Bash 快捷键
    快速正确的安装 Ruby, Rails 运行环境
    STL的常用算法
    Ubuntu下Postfix邮件服务器安装及基本的设置
    vim 参考手册
    指针 多维数组 数组指针 指针数组
    数学小抄
  • 原文地址:https://www.cnblogs.com/xiaomingzaixian/p/9395860.html
Copyright © 2020-2023  润新知