回答編集履歴
3
誤字修正
answer
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
質問のコードが消されてしまいましたが、trade関数がよくわからなかったのと、
|
2
|
-
リストのクイックソートに興味がわいたので、全部書き直して
|
2
|
+
リストのクイックソートに興味がわいたので、全部書き直してみました。
|
3
3
|
```C
|
4
4
|
#include <stdio.h> // printf
|
5
5
|
#include <stdlib.h> // rand, srand
|
2
コードの修正
answer
CHANGED
@@ -10,16 +10,16 @@
|
|
10
10
|
|
11
11
|
struct node { int data; struct node *prev, *next; };
|
12
12
|
|
13
|
-
void print_list(struct node *
|
13
|
+
void print_list(struct node *p)
|
14
14
|
{
|
15
|
-
for (
|
15
|
+
for (; p; p = p->next) printf("%d ", p->data);
|
16
16
|
putchar('\n');
|
17
17
|
}
|
18
18
|
|
19
|
-
void print_list_reverse(struct node *
|
19
|
+
void print_list_reverse(struct node *p)
|
20
20
|
{
|
21
|
-
while (
|
21
|
+
while (p->next) p = p->next;
|
22
|
-
do printf("%d ",
|
22
|
+
do printf("%d ", p->data); while (p = p->prev);
|
23
23
|
putchar('\n');
|
24
24
|
}
|
25
25
|
|
1
コメントの修正
answer
CHANGED
@@ -43,7 +43,7 @@
|
|
43
43
|
if (p->data < pivot)
|
44
44
|
left = insert(left, p); // pivot より小さいものは left へ
|
45
45
|
else
|
46
|
-
right = insert(right, p);
|
46
|
+
right = insert(right, p); // pivot 以上のものは right へ
|
47
47
|
}
|
48
48
|
if (left) left = sort(left); // left があれば left をソート
|
49
49
|
if (right) right = sort(right); // right があれば right をソート
|