• 12月16号 双链表


          双链表是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。

    #include <stdio.h>

    #include <stdlib.h>

     

    //创建双链表中的一个结点的结构体

    typedef struct node{

        struct node *previous;

        int age;

        struct node *next;

    }Node;

     

    int main(int argc, const char * argv[]) {

        

        //创建头指针

        Node *pHead = NULL;

        Node *pTail = NULL;

        

        for (int i = 0; i < 5; i++) {

            //为结点申请一片内存空间

            Node *pTemp = (Node *)malloc(1 * sizeof(Node));

            if (pTemp == NULL) {

                exit(EXIT_FAILURE);

            }

            

            //age

            printf("请输入年龄:");

            scanf("%d", &pTemp->age);

            

            //next

            pTemp->next = NULL;

            

            //previous

            if (pHead == NULL) {

                //这个是第一个结点,第一个结点的previous指针为空

                pTemp->previous = NULL;

                

                //pTemp指向的结点成为第一个结点

                pHead = pTemp;

                pTail = pTemp;

            } else{

                //pTail指向的结点的next指针指向现在创建的pTemp结点

                pTail->next = pTemp;

                

                //pTempprevious指针指向pTail结点

                pTemp->previous = pTail;

                

                //pTail指针指向最后一个结点

                pTail = pTemp;

                

                //头结点的previous指针指向最后一个结点

                pHead->previous = pTail;

                

                //尾结点的next指针指向头结点

                pTail->next = pHead;

            }

        }

        

        Node *pTemp = pHead;

        while (pTemp != NULL) {

            printf("%d ", pTemp->age);

            pTemp = pTemp->next;

            if (pTemp == pHead) {

                break;

            }

        }

        printf(" ");

        return 0;

    }

  • 相关阅读:
    HTTP-Headers-And-Tricks
    Burp减少干扰
    HTTP 请求低位三连的解决办法
    apk 脱壳 报错:Failed to spawn: unable to access zygote64 while preparing for app launch; try disablin...
    mysql 如何分批 读取数据
    记录一次问题排查
    navicat打开几秒后就自动关闭
    1013 Battle Over Cities (25 分)
    1012 The Best Rank (25 分)
    1011 World Cup Betting (20 分)
  • 原文地址:https://www.cnblogs.com/hmzxwky/p/5051966.html
Copyright © 2020-2023  润新知