zoukankan      html  css  js  c++  java
  • 双向链表

    这本是翁恺老师的MOOC链表的一道练习题。就想尝试一下忠豪提过的双向链表解决,感觉只要理解了单向链表的操作,双向还是很简单的。其实双向链表的结构体也很简单:

    struct double_list{
         int value;
         double_list *prev;
         double_list *next
    } DOUBLE_LIST;

    这道题目是这样的:输入一系列数据(不知道要输入几个),当输入-1后停止(并不计算-1为输入数据),然后逆序输出这些数据。

    代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    typedef struct Link_List{
        int value;
        struct Link_List *prev;
        struct Link_List *next;
    } DOUBLE_LINK;
    typedef struct Link_List2{
        DOUBLE_LINK *head;
        DOUBLE_LINK *tail;
    } LINK;
    int main()
    {
        LINK list;
        list.head=list.tail=NULL;
        DOUBLE_LINK *p=NULL,*q=NULL;
        int n;
        while(1)
        {
            scanf("%d",&n);
            if(n==-1)
                break;
            p=(DOUBLE_LINK *)malloc(sizeof(DOUBLE_LINK));
            p->value=n;
            p->next=NULL;
            p->prev=NULL;
            if(list.head==NULL)
            {
                list.head=p;
                list.tail=p;
            }
            else{
                q=list.tail;
                list.tail=p;
                q->next=list.tail;
                list.tail->prev=q;
            }
        }
        for(p=list.tail;p;p=p->prev)
            printf("%d ",p->value);
        return 0;
    }
  • 相关阅读:
    docker基础命令
    oracle 控制文件损坏处理
    mongodb 分片技术
    replcation set (复制集)配置过程 --mongodb
    redis API ---python
    MHA 高可用架构部署
    innoback 参数及使用说明
    Windows服务创建及发布
    DevOps 什么是 CI/CD?
    .NETReflectorVisualStudioExtension
  • 原文地址:https://www.cnblogs.com/kugwzk/p/5061653.html
Copyright © 2011-2022 走看看