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

質問編集履歴

10

修正

2020/07/24 13:20

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- c言語 リスト 追加
1
+ c言語 リスト ノード
body CHANGED
@@ -1,19 +1,5 @@
1
1
  ```C
2
- #include <stdio.h>
3
- #include <stdlib.h>
4
- struct node{
5
- char element;
6
- struct node *next;
7
- };
8
2
 
9
- struct node *initlist() {
10
- struct node *n;
11
-
12
- n = (struct node*)malloc(sizeof(struct node));
13
- n->next = NULL;
14
- return n;
15
- }
16
-
17
3
  void insert(struct node *p, char x) {
18
4
  struct node *n;
19
5
 
@@ -23,44 +9,7 @@
23
9
  n->next = p->next;
24
10
  p->next = n;
25
11
 
26
-
12
+ ```
27
13
 
28
-
29
- }
30
14
 
31
- void printlist(struct node *p) {
32
- if(p->next == NULL) {
33
- putchar('\n');
34
- }else {
35
- p = p->next;
36
- putchar(p->element);
37
- printlist(p);
38
- putchar(p->element);
39
- }
40
- }
41
-
42
- int main(int argc, char *argv[]) {
43
- struct node *list, *head;
44
- char *p;
45
- if (argc<2)
46
- exit(-1);
47
-
48
- list = initlist();
49
- p = argv[1];
50
- for (; *p; p++)
51
- insert(list, *p);
52
-
53
- printlist(list);
54
- printf("\n");
55
- for (; list; ) {
56
- head = list;
57
- list = list->next;
58
- free(head);
59
- }
60
- return 0;
61
- }
62
-
63
- ```
64
-
65
-
66
15
  このコードで文字を追加(例:abc)すると返ってくる値がcbaとなってしまいます。例えば ./a.out abc としたとき abc と返ってきてほしいです。値の返し方はリストの先頭から順に返していくやり方です。リストの先頭に追加してしまっているのが原因だと思うんですが、リストの末尾に追加する方法がいまいちよくわかりません。insert内を変えたいのですがどう変えたら良いのかわかりません。アドバイスを頂ければ幸いです。

9

修正

2020/07/24 13:20

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -63,4 +63,4 @@
63
63
  ```
64
64
 
65
65
 
66
- このコードで文字を追加(例:abc)すると返ってくる値がcbaとなってしまいます。例えば ./a.out abc としたとき abc と返ってきてほしいです。値の返し方はリストの先頭から順に返していくやり方です。リストの先頭に追加してしまっているのが原因だと思うんですが、リストの末尾に追加する方法がいまいちよくわかりません。「」内をどう変えたら良いのかわかりません。アドバイスを頂ければ幸いです。
66
+ このコードで文字を追加(例:abc)すると返ってくる値がcbaとなってしまいます。例えば ./a.out abc としたとき abc と返ってきてほしいです。値の返し方はリストの先頭から順に返していくやり方です。リストの先頭に追加してしまっているのが原因だと思うんですが、リストの末尾に追加する方法がいまいちよくわかりません。insert内を変えたいのですがどう変えたら良いのかわかりません。アドバイスを頂ければ幸いです。

8

修正

2020/07/24 12:43

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,6 @@
1
+ ```C
1
- include <stdio.h>
2
+ #include <stdio.h>
2
- include <stdlib.h>
3
+ #include <stdlib.h>
3
4
  struct node{
4
5
  char element;
5
6
  struct node *next;
@@ -59,5 +60,7 @@
59
60
  return 0;
60
61
  }
61
62
 
63
+ ```
62
64
 
65
+
63
66
  このコードで文字を追加(例:abc)すると返ってくる値がcbaとなってしまいます。例えば ./a.out abc としたとき abc と返ってきてほしいです。値の返し方はリストの先頭から順に返していくやり方です。リストの先頭に追加してしまっているのが原因だと思うんですが、リストの末尾に追加する方法がいまいちよくわかりません。「」内をどう変えたら良いのかわかりません。アドバイスを頂ければ幸いです。

7

修正

2020/07/24 11:22

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -60,4 +60,4 @@
60
60
  }
61
61
 
62
62
 
63
- このコードで文字を挿入(例:abc)すると返ってくる値がcbaとなってしまいます。例えば ./a.out abc としたとき abc と返ってきてほしいです。値の返し方はリストの先頭から順に返していくやり方です。リストの先頭に追加してしまっているのが原因だと思うんですが、リストの末尾に追加する方法がいまいちよくわかりません。「」内をどう変えたら良いのかわかりません。アドバイスを頂ければ幸いです。
63
+ このコードで文字を追加(例:abc)すると返ってくる値がcbaとなってしまいます。例えば ./a.out abc としたとき abc と返ってきてほしいです。値の返し方はリストの先頭から順に返していくやり方です。リストの先頭に追加してしまっているのが原因だと思うんですが、リストの末尾に追加する方法がいまいちよくわかりません。「」内をどう変えたら良いのかわかりません。アドバイスを頂ければ幸いです。

6

修正

2020/07/24 09:23

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,5 @@
1
- #include <stdio.h>
1
+ include <stdio.h>
2
- #include <stdlib.h>
2
+ include <stdlib.h>
3
3
  struct node{
4
4
  char element;
5
5
  struct node *next;

5

修正

2020/07/24 09:19

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,5 @@
1
1
  #include <stdio.h>
2
2
  #include <stdlib.h>
3
-
4
3
  struct node{
5
4
  char element;
6
5
  struct node *next;

4

修正

2020/07/24 09:18

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,20 +1,64 @@
1
+ #include <stdio.h>
2
+ #include <stdlib.h>
3
+
1
4
  struct node{
2
5
  char element;
3
6
  struct node *next;
4
7
  };
5
8
 
9
+ struct node *initlist() {
10
+ struct node *n;
6
11
 
12
+ n = (struct node*)malloc(sizeof(struct node));
13
+ n->next = NULL;
14
+ return n;
15
+ }
16
+
7
17
  void insert(struct node *p, char x) {
8
18
  struct node *n;
9
19
 
10
20
  n = (struct node*)malloc(sizeof(struct node));
11
21
 
12
-  「n->element = x;
22
+ n->element = x;
13
23
  n->next = p->next;
14
- p->next = n;  」
24
+ p->next = n;
15
-
25
+
26
+
16
27
 
28
+
17
29
  }
18
30
 
31
+ void printlist(struct node *p) {
32
+ if(p->next == NULL) {
33
+ putchar('\n');
34
+ }else {
35
+ p = p->next;
36
+ putchar(p->element);
37
+ printlist(p);
38
+ putchar(p->element);
39
+ }
40
+ }
19
41
 
42
+ int main(int argc, char *argv[]) {
43
+ struct node *list, *head;
44
+ char *p;
45
+ if (argc<2)
46
+ exit(-1);
47
+
48
+ list = initlist();
49
+ p = argv[1];
50
+ for (; *p; p++)
51
+ insert(list, *p);
52
+
53
+ printlist(list);
54
+ printf("\n");
55
+ for (; list; ) {
56
+ head = list;
57
+ list = list->next;
58
+ free(head);
59
+ }
60
+ return 0;
61
+ }
62
+
63
+
20
64
  このコードで文字を挿入(例:abc)すると返ってくる値がcbaとなってしまいます。例えば ./a.out abc としたとき abc と返ってきてほしいです。値の返し方はリストの先頭から順に返していくやり方です。リストの先頭に追加してしまっているのが原因だと思うんですが、リストの末尾に追加する方法がいまいちよくわかりません。「」内をどう変えたら良いのかわかりません。アドバイスを頂ければ幸いです。

3

修正

2020/07/24 09:15

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -17,4 +17,4 @@
17
17
  }
18
18
 
19
19
 
20
- このコードで文字を挿入(例:abc)すると返ってくる値がcbaとなってしまいます。例えば ./a.out abc としたとき abc と返ってきてほしいです。リストの先頭に追加してしまっているのが原因だと思うんですが、リストの末尾に追加する方法がいまいちよくわかりません。「」内をどう変えたら良いのかわかりません。アドバイスを頂ければ幸いです。
20
+ このコードで文字を挿入(例:abc)すると返ってくる値がcbaとなってしまいます。例えば ./a.out abc としたとき abc と返ってきてほしいです。値の返し方はリストの先頭から順返していくやり方です。リストの先頭に追加してしまっているのが原因だと思うんですが、リストの末尾に追加する方法がいまいちよくわかりません。「」内をどう変えたら良いのかわかりません。アドバイスを頂ければ幸いです。

2

情報の追加

2020/07/24 09:05

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -17,4 +17,4 @@
17
17
  }
18
18
 
19
19
 
20
- このコードで文字を挿入(例:abc)すると返ってくる値がcbaとなってしまいます。リストの先頭に追加してしまっているのが原因だと思うんですが、リストの末尾に追加する方法がいまいちよくわかりません。「」内をどう変えたら良いのかわかりません。アドバイスを頂ければ幸いです。
20
+ このコードで文字を挿入(例:abc)すると返ってくる値がcbaとなってしまいます。例えば ./a.out abc としたとき abc と返ってきてほしいです。リストの先頭に追加してしまっているのが原因だと思うんですが、リストの末尾に追加する方法がいまいちよくわかりません。「」内をどう変えたら良いのかわかりません。アドバイスを頂ければ幸いです。

1

修正しました

2020/07/24 09:00

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -9,11 +9,12 @@
9
9
 
10
10
  n = (struct node*)malloc(sizeof(struct node));
11
11
 
12
- n->element = x;
12
+  「n->element = x;
13
13
  n->next = p->next;
14
- p->next = n;
14
+ p->next = n;  」
15
15
 
16
+
16
17
  }
17
18
 
18
19
 
19
- このコードで文字を挿入(例:abc)すると返ってくる値がcbaとなってしまいます。リストの先頭に追加してしまっているのが原因だと思うんですが、リストの末尾に追加する方法がいまいちよくわかりません。アドバイスを頂ければ幸いです。
20
+ このコードで文字を挿入(例:abc)すると返ってくる値がcbaとなってしまいます。リストの先頭に追加してしまっているのが原因だと思うんですが、リストの末尾に追加する方法がいまいちよくわかりません。「」内をどう変えたら良いのかわかりません。アドバイスを頂ければ幸いです。