qq_52051345 2019-02-02 14:32 采纳率: 0%
浏览 583

关于C语言数组实现链表解决移动小球问题,明明是6个球为什么只输出了5个?

先看图代码会更容易理解

图片说明
图片说明

#include<stdio.h>
/*
测试数据:
6 2
A 1 4
B 3 5
输出样例:
2 1 4 5 3 6 
*/
void Link(int x, int y, int right[], int left[])
{
    right[x] = y;
    left[y] = x;
} 
int A[50000];
int left[50000], right[50000];
int main()
{
    int i, m, n, x, y, t;
    char type[2];
    scanf("%d%d", &n, &m);
    for (i = 0; i <= n; i++)
    {
        A[i] = i;
    }
    for (i = 0; i <= n; i++)//初始化数组right 
    {
        if (i != n)
        {
            right[i] = i + 1;
        }
        else
        {
            right[i] = 0;
        }
    }
    for (i = 1; i <= n + 1; i++)//初始化数组left 
    {
        left[i] = i - 1;
    } 
    for (i = 0; i < m; i++) 
    {
        scanf("%s%d%d", type, &x, &y);
        Link(left[x], right[x], right, left);
        if (type[0] == 'A')
        {
            Link(left[y], x, right, left);
            Link(x, y, right, left);
        }
        else
        {
            Link(x, right[y], right, left);
            Link(y, x, right, left);
        }
    }
    t = 1;
    while (t != 0)
    {
        printf("%d ", A[t]);
        t = right[t];
    }
    return 0;
}

图片说明

  • 写回答

1条回答 默认 最新

  • devmiao 2019-02-05 20:54
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名