質問編集履歴

10

修正

2020/07/24 13:20

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- c言語 リスト 追加
1
+ c言語 リスト ノード
test CHANGED
@@ -1,32 +1,4 @@
1
1
  ```C
2
-
3
- #include <stdio.h>
4
-
5
- #include <stdlib.h>
6
-
7
- struct node{
8
-
9
- char element;
10
-
11
- struct node *next;
12
-
13
- };
14
-
15
-
16
-
17
- struct node *initlist() {
18
-
19
- struct node *n;
20
-
21
-
22
-
23
- n = (struct node*)malloc(sizeof(struct node));
24
-
25
- n->next = NULL;
26
-
27
- return n;
28
-
29
- }
30
2
 
31
3
 
32
4
 
@@ -48,81 +20,7 @@
48
20
 
49
21
 
50
22
 
51
-
52
-
53
-
54
-
55
-
56
-
57
- }
58
-
59
-
60
-
61
- void printlist(struct node *p) {
62
-
63
- if(p->next == NULL) {
64
-
65
- putchar('\n');
66
-
67
- }else {
68
-
69
- p = p->next;
70
-
71
- putchar(p->element);
72
-
73
- printlist(p);
74
-
75
- putchar(p->element);
76
-
77
- }
78
-
79
- }
80
-
81
-
82
-
83
- int main(int argc, char *argv[]) {
84
-
85
- struct node *list, *head;
86
-
87
- char *p;
88
-
89
- if (argc<2)
90
-
91
- exit(-1);
92
-
93
-
94
-
95
- list = initlist();
96
-
97
- p = argv[1];
98
-
99
- for (; *p; p++)
100
-
101
- insert(list, *p);
102
-
103
-
104
-
105
- printlist(list);
106
-
107
- printf("\n");
108
-
109
- for (; list; ) {
110
-
111
- head = list;
112
-
113
- list = list->next;
114
-
115
- free(head);
116
-
117
- }
118
-
119
- return 0;
120
-
121
- }
122
-
123
-
124
-
125
- ```
23
+ ```
126
24
 
127
25
 
128
26
 

9

修正

2020/07/24 13:20

投稿

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

8

修正

2020/07/24 12:43

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,8 @@
1
- include <stdio.h>
1
+ ```C
2
2
 
3
+ #include <stdio.h>
4
+
3
- include <stdlib.h>
5
+ #include <stdlib.h>
4
6
 
5
7
  struct node{
6
8
 
@@ -120,6 +122,10 @@
120
122
 
121
123
 
122
124
 
125
+ ```
126
+
127
+
128
+
123
129
 
124
130
 
125
131
  このコードで文字を追加(例:abc)すると返ってくる値がcbaとなってしまいます。例えば ./a.out abc としたとき abc と返ってきてほしいです。値の返し方はリストの先頭から順に返していくやり方です。リストの先頭に追加してしまっているのが原因だと思うんですが、リストの末尾に追加する方法がいまいちよくわかりません。「」内をどう変えたら良いのかわかりません。アドバイスを頂ければ幸いです。

7

修正

2020/07/24 11:22

投稿

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

6

修正

2020/07/24 09:23

投稿

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

5

修正

2020/07/24 09:19

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,6 @@
1
1
  #include <stdio.h>
2
2
 
3
3
  #include <stdlib.h>
4
-
5
-
6
4
 
7
5
  struct node{
8
6
 

4

修正

2020/07/24 09:18

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,9 @@
1
+ #include <stdio.h>
2
+
3
+ #include <stdlib.h>
4
+
5
+
6
+
1
7
  struct node{
2
8
 
3
9
  char element;
@@ -7,6 +13,20 @@
7
13
  };
8
14
 
9
15
 
16
+
17
+ struct node *initlist() {
18
+
19
+ struct node *n;
20
+
21
+
22
+
23
+ n = (struct node*)malloc(sizeof(struct node));
24
+
25
+ n->next = NULL;
26
+
27
+ return n;
28
+
29
+ }
10
30
 
11
31
 
12
32
 
@@ -20,15 +40,83 @@
20
40
 
21
41
 
22
42
 
23
-  「n->element = x;
43
+ n->element = x;
24
44
 
25
45
  n->next = p->next;
26
46
 
27
- p->next = n;  」
47
+ p->next = n;
28
48
 
29
-
49
+
50
+
51
+
30
52
 
31
53
 
54
+
55
+
56
+
57
+ }
58
+
59
+
60
+
61
+ void printlist(struct node *p) {
62
+
63
+ if(p->next == NULL) {
64
+
65
+ putchar('\n');
66
+
67
+ }else {
68
+
69
+ p = p->next;
70
+
71
+ putchar(p->element);
72
+
73
+ printlist(p);
74
+
75
+ putchar(p->element);
76
+
77
+ }
78
+
79
+ }
80
+
81
+
82
+
83
+ int main(int argc, char *argv[]) {
84
+
85
+ struct node *list, *head;
86
+
87
+ char *p;
88
+
89
+ if (argc<2)
90
+
91
+ exit(-1);
92
+
93
+
94
+
95
+ list = initlist();
96
+
97
+ p = argv[1];
98
+
99
+ for (; *p; p++)
100
+
101
+ insert(list, *p);
102
+
103
+
104
+
105
+ printlist(list);
106
+
107
+ printf("\n");
108
+
109
+ for (; list; ) {
110
+
111
+ head = list;
112
+
113
+ list = list->next;
114
+
115
+ free(head);
116
+
117
+ }
118
+
119
+ return 0;
32
120
 
33
121
  }
34
122
 

3

修正

2020/07/24 09:15

投稿

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

2

情報の追加

2020/07/24 09:05

投稿

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

1

修正しました

2020/07/24 09:00

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -20,13 +20,15 @@
20
20
 
21
21
 
22
22
 
23
- n->element = x;
23
+  「n->element = x;
24
24
 
25
25
  n->next = p->next;
26
26
 
27
- p->next = n;
27
+ p->next = n;  」
28
28
 
29
29
 
30
+
31
+
30
32
 
31
33
  }
32
34
 
@@ -34,4 +36,4 @@
34
36
 
35
37
 
36
38
 
37
- このコードで文字を挿入(例:abc)すると返ってくる値がcbaとなってしまいます。リストの先頭に追加してしまっているのが原因だと思うんですが、リストの末尾に追加する方法がいまいちよくわかりません。アドバイスを頂ければ幸いです。
39
+ このコードで文字を挿入(例:abc)すると返ってくる値がcbaとなってしまいます。リストの先頭に追加してしまっているのが原因だと思うんですが、リストの末尾に追加する方法がいまいちよくわかりません。「」内をどう変えたら良いのかわかりません。アドバイスを頂ければ幸いです。