zoukankan      html  css  js  c++  java
  • LIST

    #include<iostream>
    struct LIST
    {
        int a;
        LIST* back;
    };
    int main()
    {
        int n;
        scanf("%d",&n);
        LIST *list=new LIST[n];//显示开辟了n个LIST结点
        for(int i=0;i<n;i++)
        {
            list[i].a=i+1;//这是为第i个(从0数)LIST结点的数据域a赋值
            if(i!=n-1)//出于这个判断是为了形成一个环形链表,在i不等于n-1(也就是不是最后一个)的时候
                list[i].back=&list[i+1];//都是把list数组中的后一个元素(这里指的是LIST对象)的地址赋到前一个元素的指针域中,这样子就形成了链接关系
            else
                list[i].back=&list[0];//如果是最后一个结点的话,那就把第一个结点的地址赋给其指针域,以此形成了一个环形的LIST元素链表
        }
            //之前是通过赋值语句形成了一个环形链表
        LIST *P=&list[n-1];//定义LIST指针,用于指向list数组的最后一个元素
         
        for(int k=0;k<n-1;k++)
        {
            P=P->back->back->back;//原本指向list数组的最后一个元素,现在将p指向修改,改成了指向后面的第三个,因为他是环形的,所以最后一个元素的后一个就是第0个了
            P->back=P->back->back;//然后在对(p->pack,这其实是p所指向的元素的pack域中的值)的指向做一次修改,这次是在上一句的基础上,把pack->back的值修改成p的后面数第二个
        }
            //以上两句代码,循环执行n-1次,最后输出了p所指向元素中的a值
            //这代码应该是在考察链表的组织结构
        printf("%d\n",P->a);
        std::cin.get();
        std::cin.get();
        return 0;
    }
    //-----------------------------

    #include<iostream>
    #include<ctime>
    using namespace std;

    struct LIST
    {
    int a;
    LIST* back;
    };
    int main()
    {

    clock_t start, finish;
    double duration;
    //------------------记时开始,测量一个事件持续的时间(包含输入的时间,具体可以自己调整)
    start = clock(); //可以调整开始的位置
    int n;
    scanf("%d",&n);//输入n
    LIST *list=new LIST[n];//类似数组
    for(int i=0;i<n;i++)
    {
    list[i].a=i+1;
    if(i!=n-1)
    list[i].back=&list[i+1];
    else
    list[i].back=&list[0];
    }
    LIST *P=&list[n-1];

    for(int k=0;k<n-1;k++)
    {
    P=P->back->back->back;//好像没用
    P->back=P->back->back;
    }
    printf("%d\n",P->a);

    std::cin.get(); //由于这个地方花费了时间,所以时间算出来的其实并不是算法运行时间
    std::cin.get();
    //---------------------------------------记时结束

    finish=clock(); //可以调整结束的位置
    duration=(double)(finish-start) / CLOCKS_PER_SEC;
    //duration=finish-start;
    cout<<"持续时间为"<<duration<<" seconds!"<<endl;
    system("pause");


    return 0;
    }

  • 相关阅读:
    CodeForces 510C Fox And Names (拓扑排序)
    Codeforces 1153D Serval and Rooted Tree (简单树形DP)
    HDU 6437 Problem L.Videos (最大费用)【费用流】
    Luogu P3381 (模板题) 最小费用最大流
    Codeforces 741B Arpa's weak amphitheater and Mehrdad's valuable Hoses (并查集+分组背包)
    Codeforces 1144F Graph Without Long Directed Paths (DFS染色+构造)
    HDU 2204 Eddy's 爱好 (容斥原理)
    Codeforces 939E Maximize! (三分 || 尺取)
    Codeforces 938D. Buy a Ticket (最短路+建图)
    CodeForces 959E Mahmoud and Ehab and the xor-MST (MST+找规律)
  • 原文地址:https://www.cnblogs.com/herizai/p/3078322.html
Copyright © 2011-2022 走看看