teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

誤字修正

2020/12/03 12:42

投稿

kazuma-s
kazuma-s

スコア8222

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

コードの修正

2020/12/03 12:42

投稿

kazuma-s
kazuma-s

スコア8222

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 *head)
13
+ void print_list(struct node *p)
14
14
  {
15
- for (struct node *p = head; p; p = p->next) printf("%d ", p->data);
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 *head)
19
+ void print_list_reverse(struct node *p)
20
20
  {
21
- while (head->next) head = head->next;
21
+ while (p->next) p = p->next;
22
- do printf("%d ", head->data); while (head = head->prev);
22
+ do printf("%d ", p->data); while (p = p->prev);
23
23
  putchar('\n');
24
24
  }
25
25
 

1

コメントの修正

2020/12/03 11:56

投稿

kazuma-s
kazuma-s

スコア8222

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); // pivot より小さいものは right へ
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 をソート