崩溃!!!大家帮我看看问题出在哪???链表的倒序

时间:2022-12-28 07:36:51

今天在做PAT题时,有一道是这样的

崩溃!!!大家帮我看看问题出在哪???链表的倒序

基本方法,就是用链表做,和用数组做呗,习惯性的先用数组做了,结果出了问题

 1 #include <iostream>
 2 #include <string.h>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int count, renum;
 8     string add;
 9     cin>>add>>count>>renum;
10     string add1[count],add2[count],madd1[count],madd2[count];
11     int mnum[count],num[count];
12     for(int i=0;i<count;i++)
13     {
14         cin>>add1[i]>>num[i]>>add2[i];
15     }
16     for(int i=0;i<count;i++)
17     {
18 
19         for(int j=0;j<count;j++)
20        {
21            if(add1[j]==add)
22            {
23                madd1[i] = add1[j];
24                mnum[i]=num[j];
25                madd2[i] = add2[j];
26                add=madd2[i];
27                break;
28            }
29        }
30     }
31     int temp=0;
32     int fake = count;
33     while(count-renum>=0)
34     {
35         for(int i= temp,j=temp+renum-1;i<=temp+renum-1;i++,j--)
36         {
37             add1[i] = madd1[j];
38             num[i] = mnum[j];
39         }
40         count-=renum;
41         temp=temp+renum;
42     }
43     for(int i=temp;i<fake;i++)
44     {
45 
46             add1[i] = madd1[i];
47             num[i] = mnum[i];
48     }
49     for(int i=0;i<fake-1;i++)
50     {
51         add2[i]=add1[i+1];
52     }
53     add2[fake-1] = "-1";
54     for(int i=0;i<fake;i++)
55     {
56         cout<<add1[i]<<" "<<num[i]<<" "<<add2[i]<<endl;
57     }
58     return 0;
59 }

请无视我的变量命名习惯

结果是

崩溃!!!大家帮我看看问题出在哪???链表的倒序

运行超时我还可以理解,毕竟有可能到复杂度是o(n*n),我也会想办法解决。

可是,答案错误会是什么情况?是什么特殊情况我没考虑到么!请发现的人指教一下啊!!谢谢了!

以上