• C语言创建单向链表


    步骤

    1、在创建链表前首先要定义一个结构体,此结构体包含数据域和指针域,数据域和指针域均可以有多个,该结构体实际上就是结点(Node);

    2、链表的建立至少需要三个结点,头结点、尾结点、待插入结点,这里分别用tHead、tLast、tTemp来表示三个结点;

    3、头结点作为链表的标识,在链表创建时首先要给tHead分配空间(使用malloc申请空间);

    4、链表每插入新结点tTemp时,都需要给新结点分配一个新的空间;

    5、值得注意的是,建立第一个结点时,直接让tHead指向tTemp,并让tLast指向tHead即可,此时三个结点的关系如图所示,tHead和tLast此时都为第一个结点;

     

    6、第一个结点创建完成后,新增结点tTemp直接挂在tLast后面,即tLast->next = tTemp,再将tLast指向tTemp(这一步操作就是将新增的tTemp变成了链表的表尾),最后将tLast->next指向NULL即可;

    C语言实现代码如下:

     1 #include <stdio.h>
     2 #include <malloc.h>
     3 
     4 typedef struct Node
     5 {
     6     int Value;
     7     struct Node *Next;
     8 }Node_t;
     9 
    10 
    11 void LinkedListCreate(void)
    12 {
    13     int tNum = 0;
    14     int tValue = 0;
    15     Node_t *tTemp = NULL;//待插入节点
    16     Node_t *tHead = NULL;//头结点
    17     Node_t *tLast = NULL;//尾结点
    18   
    19     printf("请输入新建链表节点数:");
    20     scanf("%d",&tNum);
    21     
    22     while (tNum)
    23     {     
    24         tTemp = (Node_t*)malloc(sizeof(struct Node));//为结点分配空间
    25         printf("请输入第一个节点数据内容(阿拉伯数字):");
    26         scanf("%d",&tValue);
    27         
    28         tTemp->Value = tValue;
    29         
    30         if (tHead == NULL)
    31         {
    32             tHead = tTemp;
    33             tLast = tHead;
    34         }else{
    35             tLast->Next = tTemp;
    36             tLast = tTemp;
    37             tLast->Next = NULL;
    38             /* code */
    39         }
    40         tNum--;
    41         /* code */
    42     }
    43     printf("节点数据内容为:");
    44     while (tHead)
    45     {
    46         printf("%d  ",tHead->Value);
    47         tHead = tHead->Next;
    48         /* code */
    49     }
    50 }
    51 
    52 
    53 void main()
    54 {
    55     LinkedListCreate();
    56 }
  • 相关阅读:
    十一.状态设计模式
    十. 享元设计模式
    Orcale(一)概念
    java类加载器
    spring中的事务管理机制
    spring中的annotation注解类配置
    countDownLatch和Semaphore用于多线程
    布隆过滤器
    mybatis-genator自动生成的mapper中模糊查询使用方法
    java中的异常
  • 原文地址:https://www.cnblogs.com/jiayezi/p/16296182.html
Copyright © 2020-2023  润新知