首页
社区
课程
招聘
[原创][代码之美][自主命题]用数组索引当指针使用,建立链表
发表于: 2008-11-12 11:46 10668

[原创][代码之美][自主命题]用数组索引当指针使用,建立链表

2008-11-12 11:46
10668
这个例子是用数组的索引当作指针,建立循环链表。
具体的问题是那个1000人报数出列找最后一个人的例子。
注释不好写,代码也不长,很好理解的。
小弟献丑了

#include <stdio.h>
#include <stdlib.h>

int get(int n)
{
    int *arry = (int*)malloc(sizeof(int)*n);
    int i;

    for (i=0; i<n; i++)
    {
        arry[i] = i+1;
    }

    arry[n-1] = 0;

    i = 0;

    while (arry[i] != i)
    {
        i = arry[arry[i]] = arry[arry[arry[i]]];
    }

    return i;
}


int __cdecl main(void)
{
    int n;

    scanf("%d", &n);

    printf("%d", get(n));
}


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
2
还真是没看懂
2008-11-12 11:56
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
3
,额,理解不来...
2008-11-12 13:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
也是不大明白。。。
2009-1-11 14:23
0
雪    币: 220
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
i = arry[arry[i]] = arry[arry[arry[i]]];
这句很诡异
2009-5-31 22:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
[QUOTE=绿豆青蛙;633888]i = arry[arry[i]] = arry[arry[arry[i]]];
这句很诡异[/QUOTE]

一起诡异...
2009-9-13 03:30
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
直接说有什么作用好了,感觉很模糊~
2010-3-16 09:44
0
游客
登录 | 注册 方可回帖
返回
//