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;
    }

  • 相关阅读:
    ITPUB:按道理应该走的局部分区索引
    如何用正则取美国人名.
    Commit Enhancements in Oracle 10g Database Release 2
    关羽(162219)
    使用Oracle在线重定义包 DBMS_REDEFINITION 在不停业务的情况下增加或修改字段
    Online Table Redefinition Enhancements in Oracle Database 11g Release 1
    关于分区表和分区索引
    如何切换用户到不同用户Session上
    PL/SQL Enhancements in Oracle Database 10g
    Using Regular Expressions in Oracle Database
  • 原文地址:https://www.cnblogs.com/herizai/p/3078322.html
Copyright © 2011-2022 走看看