質問編集履歴

4

コードの変更点

2018/05/12 18:58

投稿

runako67
runako67

スコア8

test CHANGED
File without changes
test CHANGED
@@ -66,6 +66,8 @@
66
66
 
67
67
 
68
68
 
69
+ おそらく読み込みまでだけできていると思います。
70
+
69
71
  なるべく初心者でも理解可能なコードを待っています。
70
72
 
71
73
  お願いいたします。
@@ -78,9 +80,15 @@
78
80
 
79
81
  ```java
80
82
 
83
+
84
+
85
+ import java.io.BufferedReader;
86
+
87
+ import java.io.FileReader;
88
+
89
+ import java.io.IOException;
90
+
81
91
  import java.io.*;
82
-
83
- import java.util.Scanner;
84
92
 
85
93
  import javax.swing.JOptionPane;
86
94
 
@@ -92,149 +100,79 @@
92
100
 
93
101
  {
94
102
 
95
- File myfile = new File(" names.txt ");
96
-
97
- Scanner inputFile = new Scanner(myfile); //ここでname.txtから名前を読み込む
98
-
99
-   BinaryTree(inputFile);
103
+ readFile();
100
104
 
101
105
  String name;
102
106
 
103
- name = JOptionPane.showInputDialog("名前を入力してください。 ");
107
+ //名前を入力してもらう
104
108
 
105
- //わからないところ① ここで得た名前を二分探索木に伝達して、探してもらいたいがどうやって二分木を読み込んだテキストに、実装できるのかわからない
109
+ name = JOptionPane.showInputDialog("Enter the name that you are lookig for. ");
106
110
 
107
- Node root;
111
+ BinaryTree(name);
108
112
 
109
- search(name, root);
113
+ System.out.println(name);
110
114
 
111
- }
115
+ }
112
116
 
117
+
113
118
 
119
+ private static String readFile() //namae.txtから全ての名前と数字を読み込む
114
120
 
115
- private String BinaryTree(Node)
121
+ {
116
122
 
117
- {
123
+ try{
118
124
 
119
- //予測① ここに二分木を設置するコードを書く
125
+ File file = new File("namae.txt");
120
126
 
127
+ FileReader filereader = new FileReader(file);
128
+
129
+ int ch;
130
+
131
+ }catch(FileNotFoundException e){
132
+
133
+ System.out.println(e);
134
+
135
+ }catch(IOException e){
136
+
137
+ System.out.println(e);
138
+
139
+ }return null;
140
+
141
+ }
142
+
143
+ private static Node BinaryTree(String n){
144
+
145
+ //ノード作成
146
+
147
+ if(name==foundInText)
148
+
149
+ {
150
+
121
- //わからないとろ② Nodeクラスで二分技設置は終了している? 
151
+ //ここにif文を使なまえがあるかどうかを調べる
152
+
153
+ System.out.println((char)ch);
154
+
155
+ }else
156
+
157
+ {
158
+
159
+ System.out.println("The name was not found. Enter anotehr name.");
160
+
161
+ }
162
+
163
+ }
164
+
165
+
122
166
 
123
167
  }
124
168
 
125
169
 
126
170
 
127
- public String search(name)
128
-
129
- {
130
-
131
-
132
-
133
- //予測② ここでif文を使い二分木内を見回る
134
-
135
- if( name! == found)
136
-
137
- {
138
-
139
- System.out.println("終了")
140
-
141
- exit(0);
142
-
143
- }
144
-
145
- else
146
-
147
- {
148
-
149
- System.out.println(name + number); //名前がリスト内にあった場合これが最終的に表示される
150
-
151
-
152
-
153
- }
154
-
155
- }
156
-
157
-
158
-
159
- }
160
-
161
-
162
-
163
-
164
-
165
171
  ```
166
172
 
167
- ```ここに言語を入力
173
+ file
168
174
 
169
- public class Node
170
-
171
- {
172
-
173
- int number;
174
-
175
- String name;
176
-
177
- Node left, right;
175
+ "name..txt"
178
-
179
- Node (int num) //int (number) to hold mumbers of names
180
-
181
- {
182
-
183
- number = num;
184
-
185
- left = null;
186
-
187
- right = null;
188
-
189
- }
190
-
191
- Node(int num, Node leftChild, Node rightChild)
192
-
193
- {
194
-
195
- number = num;
196
-
197
- left = leftChild;
198
-
199
- right = rightChild;
200
-
201
- }
202
-
203
- Node(String n) //String (name) to hold names
204
-
205
- {
206
-
207
- name = n;
208
-
209
- left = null;
210
-
211
- right = null;
212
-
213
- }
214
-
215
- Node(String n, Node leftChild, Node rightChild)
216
-
217
- {
218
-
219
- name = n;
220
-
221
- left = leftChild;
222
-
223
- right = rightChild;
224
-
225
- }
226
-
227
- }
228
-
229
-
230
-
231
- ```
232
-
233
- 名前リスト
234
-
235
- name.text
236
-
237
-
238
176
 
239
177
  Buffy 0
240
178
 
@@ -255,3 +193,7 @@
255
193
  Yamilet 804
256
194
 
257
195
  Clay 402
196
+
197
+
198
+
199
+ ```

3

より詳細を

2018/05/12 18:58

投稿

runako67
runako67

スコア8

test CHANGED
@@ -1 +1 @@
1
- 二分木を使ってリストから特定の名前を見つけたい
1
+ 二分探索木を使ってリストから特定の名前を見つけたい
test CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
 
4
4
 
5
+ クラスでは、二分技について学習しました。
6
+
7
+ そして、今出されている課題が以下です。
8
+
9
+
10
+
11
+ ---
12
+
5
13
  新生児の名前とその名前の人数が載っているテキスト
6
14
 
7
15
  例)太郎 40
@@ -18,7 +26,7 @@
18
26
 
19
27
  があります。それを元に、
20
28
 
21
- **入力した名前がリストに入っているかand何人なのかを、二分木を使って調べる**
29
+ **入力した名前がリストに入っているかand何人なのかを、二分木探索を使って調べる**
22
30
 
23
31
  例)太郎を調べる
24
32
 
@@ -34,15 +42,31 @@
34
42
 
35
43
 
36
44
 
45
+ どちらの場合でも、何回ノードを訪問したか数を表示させる
46
+
37
- <質問>
47
+ ---
48
+
38
-
49
+ つまり整理すると
50
+
51
+ 1)テキスト内の名前と人数を読み込む
52
+
39
- - リストどうやって、二分木で名前をソートするのか
53
+ 2)それらを二分木でソートする
40
-
54
+
41
- - このコードの続き
55
+ 3)探す名前を入力させる
56
+
42
-
57
+ 4)ならびかえられた二分木内をinorder, preorder, またはpostorderを使い徘徊
58
+
43
-
59
+ 5)a.見つけた場合 名前と人数を出力
60
+
44
-
61
+ b.みつからなかった場合 終了
62
+
63
+ 6)a,bどちらでもノード訪問の回数を出力
64
+
65
+ ということです。
66
+
67
+
68
+
45
- です。なるべく初心者でも理解可能なコードを待っています。
69
+ なるべく初心者でも理解可能なコードを待っています。
46
70
 
47
71
  お願いいたします。
48
72
 
@@ -70,13 +94,15 @@
70
94
 
71
95
  File myfile = new File(" names.txt ");
72
96
 
73
- Scanner inputFile = new Scanner(myfile);
97
+ Scanner inputFile = new Scanner(myfile); //ここでname.txtから名前を読み込む
98
+
99
+   BinaryTree(inputFile);
74
100
 
75
101
  String name;
76
102
 
77
103
  name = JOptionPane.showInputDialog("名前を入力してください。 ");
78
104
 
79
-
105
+ //わからないところ① ここで得た名前を二分探索木に伝達して、探してもらいたいがどうやって二分木を読み込んだテキストに、実装できるのかわからない
80
106
 
81
107
  Node root;
82
108
 
@@ -86,16 +112,54 @@
86
112
 
87
113
 
88
114
 
89
- private String search(name)
115
+ private String BinaryTree(Node)
90
116
 
91
117
  {
92
118
 
93
- ここに何か
119
+ //予測① ここに二分木を設置するコードを書く
120
+
121
+ //わからないところ② Nodeクラスで二分技設置は終了しているのか? 
94
122
 
95
123
  }
96
124
 
97
125
 
98
126
 
127
+ public String search(name)
128
+
129
+ {
130
+
131
+
132
+
133
+ //予測② ここでif文を使い二分木内を見回る
134
+
135
+ if( name! == found)
136
+
137
+ {
138
+
139
+ System.out.println("終了")
140
+
141
+ exit(0);
142
+
143
+ }
144
+
145
+ else
146
+
147
+ {
148
+
149
+ System.out.println(name + number); //名前がリスト内にあった場合これが最終的に表示される
150
+
151
+
152
+
153
+ }
154
+
155
+ }
156
+
157
+
158
+
159
+ }
160
+
161
+
162
+
99
163
 
100
164
 
101
165
  ```

2

誤字

2018/05/10 03:25

投稿

runako67
runako67

スコア8

test CHANGED
File without changes
test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
 
26
26
 
27
- - リストリストに入っている場合→ 表示
27
+ - リストに入っている場合→ 表示
28
28
 
29
29
  例)太郎 40
30
30
 
@@ -38,7 +38,7 @@
38
38
 
39
39
  - リストをどうやって、二分木で名前をソートするのか
40
40
 
41
- - リストこのコードの続き
41
+ - このコードの続き
42
42
 
43
43
 
44
44
 

1

質問欄

2018/05/09 16:29

投稿

runako67
runako67

スコア8

test CHANGED
@@ -1 +1 @@
1
- 二分木を使って名前リストから特定の名前を見つけたい
1
+ 二分木を使ってリストから特定の名前を見つけたい
test CHANGED
@@ -38,7 +38,7 @@
38
38
 
39
39
  - リストをどうやって、二分木で名前をソートするのか
40
40
 
41
- - どうやって名前をメインメソッに返す
41
+ - リストこのコードの続き
42
42
 
43
43
 
44
44