美文网首页
1025 反转链表 (25 分)

1025 反转链表 (25 分)

作者: 79d12e22ec53 | 来源:发表于2019-04-30 10:41 被阅读0次
    #include<stdio.h>
    typedef struct NODE
    {
        int address;
        int data;
        int next;
    }Node;
    
    
    Node orign[100001], sort[100001], result[100001];
    
    int main()
    {
        int addr, N, K;
    
        scanf("%d %d %d", &addr, &N, &K);
        int i, j;
        for(i=0; i<N; i++)
        {
            Node temp;
            scanf("%d %d %d", &temp.address, &temp.data, &temp.next);
            orign[temp.address] = temp;
        }
    
        for(i=0; i<N; i++)
        {
            sort[i] = orign[addr];
            addr = sort[i].next;
            if(addr == -1)
            {
                N = i+1;
                break;
            }
        }
    
        for(i=0; i<N/K; i++)
        {
            for(j=0; j<K/2; j++)
            {
                Node temp;
                temp = sort[j+i*K];
                sort[j+i*K] = sort[K+i*K-j-1];
                sort[K+i*K-j-1] = temp;
            }
        }
    
        for (i = 0; i < N; i++) {
            if(i != N - 1) {
                sort[i].next = sort[i+1].address;
                printf("%05d %d %05d\n", sort[i].address, sort[i].data, sort[i].next);
            } else {
                sort[i].next = -1;
                printf("%05d %d %d\n", sort[i].address, sort[i].data, sort[i].next);
            }
        }
    
    
    
    }
    
    

    相关文章

      网友评论

          本文标题:1025 反转链表 (25 分)

          本文链接:https://www.haomeiwen.com/subject/dfemnqtx.html