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

質問編集履歴

4

コードの変更点

2018/05/12 18:58

投稿

runako67
runako67

スコア8

title CHANGED
File without changes
body CHANGED
@@ -32,91 +32,60 @@
32
32
  6)a,bどちらでもノード訪問の回数を出力
33
33
  ということです。
34
34
 
35
+ おそらく読み込みまでだけできていると思います。
35
36
  なるべく初心者でも理解可能なコードを待っています。
36
37
  お願いいたします。
37
38
 
38
39
  (以下が私ができるところまでやって見たコードになります)
39
40
 
40
41
  ```java
42
+
43
+ import java.io.BufferedReader;
44
+ import java.io.FileReader;
45
+ import java.io.IOException;
41
46
  import java.io.*;
42
- import java.util.Scanner;
43
47
  import javax.swing.JOptionPane;
44
48
  public class HW5
45
49
  {
46
50
  public static void main(String[] args) throws IOException
47
51
  {
48
- File myfile = new File(" names.txt ");
49
- Scanner inputFile = new Scanner(myfile); //ここでname.txtから名前を読み込む
50
-   BinaryTree(inputFile);
52
+ readFile();
51
53
  String name;
54
+ //名前を入力してもらう
52
- name = JOptionPane.showInputDialog("名前を入力してください。 ");
55
+ name = JOptionPane.showInputDialog("Enter the name that you are lookig for. ");
53
- //わからないところ① ここで得た名前を二分探索木に伝達して、探してもらいたいがどうやって二分木を読み込んだテキストに、実装できるのかわからない
54
- Node root;
55
- search(name, root);
56
+ BinaryTree(name);
57
+ System.out.println(name);
56
- }
58
+ }
57
-
59
+
58
- private String BinaryTree(Node)
60
+ private static String readFile() //namae.txtから全ての名前と数字を読み込む
59
- {
60
- //予測① ここに二分木を設置するコードを書く
61
- //わからないところ② Nodeクラスで二分技設置は終了しているのか? 
62
- }
63
-
64
- public String search(name)
65
61
  {
66
-
62
+ try{
63
+ File file = new File("namae.txt");
64
+ FileReader filereader = new FileReader(file);
65
+ int ch;
66
+ }catch(FileNotFoundException e){
67
+ System.out.println(e);
68
+ }catch(IOException e){
69
+ System.out.println(e);
70
+ }return null;
71
+ }
72
+ private static Node BinaryTree(String n){
67
- //予測② ここでif文を使い二分木内を見回る
73
+ //ノード作成
68
- if( name! == found)
74
+ if(name==foundInText)
69
75
  {
76
+ //ここにif文を使いなまえがあるかどうかを調べる
70
- System.out.println("終了")
77
+ System.out.println((char)ch);
71
- exit(0);
72
- }
73
- else
78
+ }else
74
79
  {
75
- System.out.println(name + number); //名前がリスト内にあった場合これが最終的に表示される
80
+ System.out.println("The name was not found. Enter anotehr name.");
76
-
77
81
  }
78
82
  }
79
-
83
+
80
84
  }
81
85
 
82
-
83
86
  ```
84
- ```ここに言語を入力
85
- public class Node
86
- {
87
- int number;
88
- String name;
87
+ file
89
- Node left, right;
88
+ "name..txt"
90
- Node (int num) //int (number) to hold mumbers of names
91
- {
92
- number = num;
93
- left = null;
94
- right = null;
95
- }
96
- Node(int num, Node leftChild, Node rightChild)
97
- {
98
- number = num;
99
- left = leftChild;
100
- right = rightChild;
101
- }
102
- Node(String n) //String (name) to hold names
103
- {
104
- name = n;
105
- left = null;
106
- right = null;
107
- }
108
- Node(String n, Node leftChild, Node rightChild)
109
- {
110
- name = n;
111
- left = leftChild;
112
- right = rightChild;
113
- }
114
- }
115
-
116
- ```
117
- 名前リスト
118
- name.text
119
-
120
89
  Buffy 0
121
90
  Nathaniel 64
122
91
  Elyse 823
@@ -126,4 +95,6 @@
126
95
  Ciara 284
127
96
  Flo 0
128
97
  Yamilet 804
129
- Clay 402
98
+ Clay 402
99
+
100
+ ```

3

より詳細を

2018/05/12 18:58

投稿

runako67
runako67

スコア8

title CHANGED
@@ -1,1 +1,1 @@
1
- 二分木を使ってリストから特定の名前を見つけたい
1
+ 二分探索木を使ってリストから特定の名前を見つけたい
body CHANGED
@@ -1,5 +1,9 @@
1
1
  java初心者です。
2
2
 
3
+ クラスでは、二分技について学習しました。
4
+ そして、今出されている課題が以下です。
5
+
6
+ ---
3
7
  新生児の名前とその名前の人数が載っているテキスト
4
8
  例)太郎 40
5
9
     花子 23
@@ -8,7 +12,7 @@
8
12
 
9
13
  etc.
10
14
  があります。それを元に、
11
- **入力した名前がリストに入っているかand何人なのかを、二分木を使って調べる**
15
+ **入力した名前がリストに入っているかand何人なのかを、二分木探索を使って調べる**
12
16
  例)太郎を調べる
13
17
 
14
18
  - リストに入っている場合→ 表示
@@ -16,11 +20,19 @@
16
20
 
17
21
  - いない場合 → 終了
18
22
 
23
+ どちらの場合でも、何回ノードを訪問したか数を表示させる
19
- <質問>
24
+ ---
25
+ つまり整理すると
26
+ 1)テキスト内の名前と人数を読み込む
20
- - リストどうやって、二分木で名前をソートするのか
27
+ 2)それらを二分木でソートする
21
- - このコードの続き
28
+ 3)探す名前を入力させる
29
+ 4)ならびかえられた二分木内をinorder, preorder, またはpostorderを使い徘徊
30
+ 5)a.見つけた場合 名前と人数を出力
31
+ b.みつからなかった場合 終了
32
+ 6)a,bどちらでもノード訪問の回数を出力
33
+ ということです。
22
34
 
23
- です。なるべく初心者でも理解可能なコードを待っています。
35
+ なるべく初心者でも理解可能なコードを待っています。
24
36
  お願いいたします。
25
37
 
26
38
  (以下が私ができるところまでやって見たコードになります)
@@ -34,20 +46,40 @@
34
46
  public static void main(String[] args) throws IOException
35
47
  {
36
48
  File myfile = new File(" names.txt ");
37
- Scanner inputFile = new Scanner(myfile);
49
+ Scanner inputFile = new Scanner(myfile); //ここでname.txtから名前を読み込む
50
+   BinaryTree(inputFile);
38
51
  String name;
39
52
  name = JOptionPane.showInputDialog("名前を入力してください。 ");
40
-
53
+ //わからないところ① ここで得た名前を二分探索木に伝達して、探してもらいたいがどうやって二分木を読み込んだテキストに、実装できるのかわからない
41
54
  Node root;
42
55
  search(name, root);
43
56
  }
44
57
 
45
- private String search(name)
58
+ private String BinaryTree(Node)
46
59
  {
47
- ここに何か
60
+ //予測① ここに二分木を設置するコードを書く
61
+ //わからないところ② Nodeクラスで二分技設置は終了しているのか? 
48
62
  }
49
63
 
64
+ public String search(name)
65
+ {
50
66
 
67
+ //予測② ここでif文を使い二分木内を見回る
68
+ if( name! == found)
69
+ {
70
+ System.out.println("終了")
71
+ exit(0);
72
+ }
73
+ else
74
+ {
75
+ System.out.println(name + number); //名前がリスト内にあった場合これが最終的に表示される
76
+
77
+ }
78
+ }
79
+
80
+ }
81
+
82
+
51
83
  ```
52
84
  ```ここに言語を入力
53
85
  public class Node

2

誤字

2018/05/10 03:25

投稿

runako67
runako67

スコア8

title CHANGED
File without changes
body CHANGED
@@ -11,14 +11,14 @@
11
11
  **入力した名前がリストに入っているかand何人なのかを、二分木を使って調べる**
12
12
  例)太郎を調べる
13
13
 
14
- - リストリストに入っている場合→ 表示
14
+ - リストに入っている場合→ 表示
15
15
  例)太郎 40
16
16
 
17
17
  - いない場合 → 終了
18
18
 
19
19
  <質問>
20
20
  - リストをどうやって、二分木で名前をソートするのか
21
- - リストこのコードの続き
21
+ - このコードの続き
22
22
 
23
23
  です。なるべく初心者でも理解可能なコードを待っています。
24
24
  お願いいたします。

1

質問欄

2018/05/09 16:29

投稿

runako67
runako67

スコア8

title CHANGED
@@ -1,1 +1,1 @@
1
- 二分木を使って名前リストから特定の名前を見つけたい
1
+ 二分木を使ってリストから特定の名前を見つけたい
body CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  <質問>
20
20
  - リストをどうやって、二分木で名前をソートするのか
21
- - どうやって名前をメインメソッに返す
21
+ - リストこのコードの続き
22
22
 
23
23
  です。なるべく初心者でも理解可能なコードを待っています。
24
24
  お願いいたします。