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

    }

  • 相关阅读:
    网络编程之UDP
    深入浅出Object.defineProperty()
    Vue知识点总结
    JS基础-垃圾回收机制与内存泄漏的优化
    JS基础-作用域
    ES6知识点
    JS基础-this
    JS基础-事件循环机制
    JS基础-事件
    JS基础-事件队列
  • 原文地址:https://www.cnblogs.com/hmzxwky/p/5051966.html
Copyright © 2011-2022 走看看