質問編集履歴
10
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -13,8 +13,7 @@
|
|
13
13
|
|
14
14
|
ググったのですが, ダブルポインタを用いた線形リストの参考になるサイトが見当たらなかったのでよろしくお願いいたします。
|
15
15
|
|
16
|
-
|
16
|
+
|
17
|
-
~~ダブルポインタ **bの場合, bはポインタ先のポインタのアドレスかポインタのポインタ先のアドレスどちらを示しているのでしょうか?~~
|
18
17
|

|
19
18
|
|
20
19
|
### 該当のソースコード
|
@@ -78,11 +77,13 @@
|
|
78
77
|
### 試したこと
|
79
78
|
まず、"あ"と"い"は先頭が空リストの場合と値が昇順になることを考えて
|
80
79
|
|
80
|
+
~~(p=NULL || data > p->data)~~
|
81
|
-
(p=NULL || data
|
81
|
+
(p=NULL || data < p->data)
|
82
82
|
|
83
83
|
次の"う"と"え"は
|
84
84
|
|
85
|
+
~~while(p->next != NULL && data < p->next->data)~~
|
85
|
-
while(p->next != NULL && data
|
86
|
+
while(p->next != NULL && data > p->next->data)
|
86
87
|
|
87
88
|
でいいと思うのですが次の"か"と"き"を考える上でinsert2関数内の
|
88
89
|
list **p = head_p;
|
9
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -88,7 +88,7 @@
|
|
88
88
|
list **p = head_p;
|
89
89
|
とありますが, このhead_pの値はリストの先頭のアドレスを指しているのでしょうか?
|
90
90
|
|
91
|
-
**追記**間接メンバー"->"は選択演算*、アドレス演算&より優先順位が高いことを考慮して,
|
91
|
+
**追記: **間接メンバー"->"は選択演算*、アドレス演算&より優先順位が高いことを考慮して,
|
92
92
|
"お"、"か"はそれぞれ
|
93
93
|
while(*p != NULL && data < (*p)->data)
|
94
94
|
であり、"き"は
|
8
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -88,8 +88,7 @@
|
|
88
88
|
list **p = head_p;
|
89
89
|
とありますが, このhead_pの値はリストの先頭のアドレスを指しているのでしょうか?
|
90
90
|
|
91
|
-
**追記**
|
92
|
-
間接メンバー"->"は選択演算*、アドレス演算&より優先順位が高いことを考慮して,
|
91
|
+
**追記**間接メンバー"->"は選択演算*、アドレス演算&より優先順位が高いことを考慮して,
|
93
92
|
"お"、"か"はそれぞれ
|
94
93
|
while(*p != NULL && data < (*p)->data)
|
95
94
|
であり、"き"は
|
7
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -88,7 +88,7 @@
|
|
88
88
|
list **p = head_p;
|
89
89
|
とありますが, このhead_pの値はリストの先頭のアドレスを指しているのでしょうか?
|
90
90
|
|
91
|
-
追記
|
91
|
+
**追記**
|
92
92
|
間接メンバー"->"は選択演算*、アドレス演算&より優先順位が高いことを考慮して,
|
93
93
|
"お"、"か"はそれぞれ
|
94
94
|
while(*p != NULL && data < (*p)->data)
|
6
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -86,4 +86,13 @@
|
|
86
86
|
|
87
87
|
でいいと思うのですが次の"か"と"き"を考える上でinsert2関数内の
|
88
88
|
list **p = head_p;
|
89
|
-
とありますが, このhead_pの値はリストの先頭のアドレスを指しているのでしょうか?
|
89
|
+
とありますが, このhead_pの値はリストの先頭のアドレスを指しているのでしょうか?
|
90
|
+
|
91
|
+
追記
|
92
|
+
間接メンバー"->"は選択演算*、アドレス演算&より優先順位が高いことを考慮して,
|
93
|
+
"お"、"か"はそれぞれ
|
94
|
+
while(*p != NULL && data < (*p)->data)
|
95
|
+
であり、"き"は
|
96
|
+
p = &(*p)->next;
|
97
|
+
であると思うのですが、これは
|
98
|
+
p = **pと表記することも等しいと思うのですかどうなんでしょうか。
|
5
画像の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -74,6 +74,7 @@
|
|
74
74
|
}
|
75
75
|
|
76
76
|
```
|
77
|
+

|
77
78
|
### 試したこと
|
78
79
|
まず、"あ"と"い"は先頭が空リストの場合と値が昇順になることを考えて
|
79
80
|
|
4
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -20,6 +20,11 @@
|
|
20
20
|
### 該当のソースコード
|
21
21
|
|
22
22
|
```C
|
23
|
+
typedef struct list {
|
24
|
+
int data;
|
25
|
+
struct list *next;
|
26
|
+
} list
|
27
|
+
|
23
28
|
list * list_alloc(int data) {
|
24
29
|
list *p = malloc(sizeof(list));
|
25
30
|
p->data = data;
|
@@ -52,7 +57,7 @@
|
|
52
57
|
```
|
53
58
|
|
54
59
|
```C
|
55
|
-
void insert2(
|
60
|
+
void insert2(list ** head_p, int data) {
|
56
61
|
list * new = list_alloc(data);
|
57
62
|
list **p = head_p;
|
58
63
|
while( お && か ) {
|
3
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -63,9 +63,9 @@
|
|
63
63
|
}
|
64
64
|
int main() {
|
65
65
|
list *head = NULL;
|
66
|
-
insert2(
|
66
|
+
insert2(&head,100);
|
67
|
-
insert2(
|
67
|
+
insert2(&head,50);
|
68
|
-
insert2(
|
68
|
+
insert2(&head,20);
|
69
69
|
}
|
70
70
|
|
71
71
|
```
|
2
list_allocの追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -20,6 +20,13 @@
|
|
20
20
|
### 該当のソースコード
|
21
21
|
|
22
22
|
```C
|
23
|
+
list * list_alloc(int data) {
|
24
|
+
list *p = malloc(sizeof(list));
|
25
|
+
p->data = data;
|
26
|
+
p->next = NULL;
|
27
|
+
return p;
|
28
|
+
}
|
29
|
+
|
23
30
|
list * insert1(list *head, int data) {
|
24
31
|
list *new = list_alloc(data);
|
25
32
|
list *p = head;
|
1
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -13,7 +13,8 @@
|
|
13
13
|
|
14
14
|
ググったのですが, ダブルポインタを用いた線形リストの参考になるサイトが見当たらなかったのでよろしくお願いいたします。
|
15
15
|
|
16
|
-
~~~~また, 例えば通常のポインタ *aであれば, aはaの指しているポインタ先のアドレスを示し, &aは自分のアドレスを示すことであると思うのですが,~~
|
16
|
+
~~~~また, 例えば通常のポインタ *aであれば, aはaの指しているポインタ先のアドレスを示し, &aは自分のアドレスを示すことであると思うのですが,~~
|
17
|
+
~~ダブルポインタ **bの場合, bはポインタ先のポインタのアドレスかポインタのポインタ先のアドレスどちらを示しているのでしょうか?~~
|
17
18
|

|
18
19
|
|
19
20
|
### 該当のソースコード
|