zoukankan      html  css  js  c++  java
  • C语言经典算法100例-073-链表逆序插入节点

    思路如下:先建立一个尾节点,然后从每次插入时新建一个新节点。这个最好自己画个图,就明白这些操作时咋来了:画吧少年,画完你就明白了

    看代码:

    //从后往前向链表中插入元素 
    #include <stdio.h>
    #include <stdlib.h>
    
    //定义链表结构
    struct list
    {
        int data;
        struct list *next;
    };
    typedef struct list node;
    typedef node *link;
    
    int main()
    {
        link head;  //头指针
        link tail;  //尾指针
        link ptr;   //当前指针
    
        int i,num;  //下标与元素值
    
        //初始化链表 这里是一个只含有尾指针的链表
        tail = (link)malloc(sizeof(node));
        tail->next = NULL;
        ptr = tail; //当前指针先指向尾指针
    
        //向链表中插入元素
        printf("Input 5 numbers:
    ");
        for (i = 0; i < 5; ++i)
        {
            scanf("%d", &num);
            ptr->data = num;    //当前节点data赋值
            head = (link)malloc(sizeof(node));  //开辟一个头结点
            head->next = ptr;   //头结点指向当前节点
            ptr = head;         //当前指针指向头结点
        }
        ptr = ptr->next;    //跳过头结点输出
        //输出链表
        while (ptr != NULL)
        {
            printf("%d
    ", ptr->data);
            ptr = ptr->next;
    
        }
    
        return 0;
    }
    


  • 相关阅读:
    socketserver模块
    socketserver密文测试
    Less11-Less12
    Less-5-03
    google语法
    Nmap
    01真的很简单
    kali linux 安装后的必要修改
    SQLMap-02
    SQLMap-01
  • 原文地址:https://www.cnblogs.com/mrbourne/p/9959465.html
Copyright © 2011-2022 走看看