zoukankan      html  css  js  c++  java
  • 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;
    }

  • 相关阅读:
    k3 cloud采购入库单单位问题
    k3 cloud没有使用协同平台开发时候的调试方式
    k3 cloud写插件不重启IIS热更新简单配置
    k3 cloud部署包中的安装包变成了浏览器,不能安装
    逻辑门
    JDBC的架构设计
    非功能性约束之性能(1)-性能银弹:缓存
    C#性能优化杂七杂八的总结
    QT QToolTip
    IDEA spotbugs使用
  • 原文地址:https://www.cnblogs.com/xiaomingzaixian/p/9395860.html
Copyright © 2011-2022 走看看