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

質問編集履歴

3

やってみたことを追加しました

2021/11/01 09:24

投稿

EE121
EE121

スコア5

title CHANGED
File without changes
body CHANGED
@@ -171,7 +171,7 @@
171
171
  }
172
172
  return 0;
173
173
  }
174
- 試したこと
174
+ insertCELL_tail関数について試したこと
175
175
  take1
176
176
  void insertCELL_tail(CELL* header, int n) {
177
177
  CELL* tail = generateCELL();/*ポインター*/
@@ -214,6 +214,15 @@
214
214
  tail->next=NULL;
215
215
  }
216
216
 
217
+ take4
218
+ void insertCELL_tail(CELL* header, int n) {
219
+ CELL* tail = generateCELL();/*ポインター*/
220
+ tail->value = n;
221
+ tail->next=NULL;
222
+ while (header->next != NULL)
223
+ header = header->next;
224
+ header->next = tail;
225
+ }
217
226
 
218
227
  ### 補足情報(FW/ツールのバージョンなど)
219
228
  以下のような骨組みがヒントとして与えられています

2

やってみたことを追加しました

2021/11/01 09:24

投稿

EE121
EE121

スコア5

title CHANGED
File without changes
body CHANGED
@@ -171,7 +171,50 @@
171
171
  }
172
172
  return 0;
173
173
  }
174
+ 試したこと
175
+ take1
176
+ void insertCELL_tail(CELL* header, int n) {
177
+ CELL* tail = generateCELL();/*ポインター*/
178
+ tail->value = n;
179
+ tail->next=NULL;
180
+ while (header->next == NULL) {
181
+ header->next = tail;
182
+ tail->next = NULL;
183
+ return;
174
184
 
185
+ }
186
+
187
+ }
188
+
189
+ take2
190
+ void insertCELL_tail(CELL* header, int n) {
191
+ CELL* tail = generateCELL();/*ポインター*/
192
+ tail->value = n;
193
+
194
+ while (header->next == NULL) {
195
+ header->next = tail;
196
+
197
+
198
+
199
+ }
200
+ tail->next=NULL;
201
+ }
202
+
203
+ take3
204
+ void insertCELL_tail(CELL* header, int n) {
205
+ CELL* tail = generateCELL();/*ポインター*/
206
+ tail->value = n;
207
+
208
+ while (header->next == NULL) {
209
+ header->next = tail;
210
+
211
+ return;
212
+
213
+ }
214
+ tail->next=NULL;
215
+ }
216
+
217
+
175
218
  ### 補足情報(FW/ツールのバージョンなど)
176
219
  以下のような骨組みがヒントとして与えられています
177
220
  void insertCELL_tail(CELL* header, int n) {

1

<code>ボタンを押して出てくる枠の中にコードを貼り付けました

2021/11/01 09:23

投稿

EE121
EE121

スコア5

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,77 @@
1
- ### 前提・実現したい
1
+ ``````こに言語を入力
2
+ #include<stdio.h>
3
+ #include<stdlib.h>
2
4
 
5
+
6
+ typedef struct CELL {/*構造体の定義*/
7
+ int value;/*変数の定義*/
8
+ struct CELL* next;/*ポインターに関する変数の定義*/
9
+ }CELL;/*呼称*/
10
+ //関数
11
+ CELL* generateCELL() {/*generateCELLの定義*/
12
+ CELL* p;/*CELLポインター*/
13
+ if ((p = (CELL*)malloc(sizeof(CELL))) == NULL)/*条件分岐*/
14
+ {
15
+ printf("メモリ不足です\n");/*画面表示*/
16
+ exit(1);/*exit関数の使用*/
17
+ }
18
+ return p;/*戻り値*/
19
+ }
20
+
21
+ //関数
22
+ void insertCELL_head(CELL* header, int n) {/*insertCELL_head関数の定義*/
23
+
24
+ CELL* head = generateCELL();/*ポインター*/
25
+ head->value = n;/*代入 アロー演算子連発*/
26
+ head->next = header->next;/*代入*/
27
+ header->next = head;/*代入*/
28
+ }
29
+ //関数
30
+ void deleteCELL(CELL* header) {/*deleteCELL関数の定義*/
31
+ CELL* dele = header->next;/*ポインター*/
32
+ header->next = dele->next;/*代入*/
33
+ free(dele);/*free関数の使用*/
34
+ }
35
+
36
+ void insertCELL_tail(CELL* header, int n) {
37
+ CELL* tail = generateCELL();/*ポインター*/
38
+ tail->value = n;
39
+ tail->next=NULL;
40
+ while (header->next == NULL) {
41
+ header->next = tail;
42
+ tail->next = NULL;
43
+ return;
44
+
45
+ }
46
+
47
+ }
48
+
49
+
50
+ int main(void) {/*プログラム開始*/
51
+ CELL* header = generateCELL();
52
+ header->next = NULL;
53
+
54
+ insertCELL_head(header, 30);
55
+ insertCELL_head(header, 40);
56
+ deleteCELL(header);
57
+ insertCELL_head(header, 50);
58
+ deleteCELL(header);
59
+ insertCELL_head(header, 60);
60
+ insertCELL_head(header, 70);
61
+ insertCELL_tail(header, 20);
62
+
63
+ CELL* q = header->next;
64
+ while (q != NULL) {
65
+ printf("value%d \n", q->value);
66
+ q = q->next;
67
+
68
+ }
69
+ return 0;
70
+ }
71
+
72
+ コード
73
+ ```### 前提・実現したいこと
74
+
3
75
  ここに質問の内容を詳しく書いてください。
4
76
  連結リストで末尾に挿入するパターンで困っています。
5
77
 
@@ -101,5 +173,13 @@
101
173
  }
102
174
 
103
175
  ### 補足情報(FW/ツールのバージョンなど)
176
+ 以下のような骨組みがヒントとして与えられています
177
+ void insertCELL_tail(CELL* header, int n) {
104
178
 
179
+
180
+
181
+ //NULLを指す最後のポインターを探る
182
+
183
+ }
184
+
105
185
  ここにより詳細な情報を記載してください。