мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
java:elective:lesson_03_12_14 [12/03/2014 15:52] – создано nbazhenov | java:elective:lesson_03_12_14 [19/03/2014 14:00] (текущий) – nbazhenov | ||
---|---|---|---|
Строка 21: | Строка 21: | ||
private Node root; | private Node root; | ||
- | |||
- | public MyBinarySearchTree(int data){ | ||
- | root = new Node(data); | ||
- | } | ||
public void treeInsert(int data){ | public void treeInsert(int data){ | ||
Строка 60: | Строка 56: | ||
} | } | ||
- | private Node treeSearch(int data){ | + | public boolean |
- | return | + | if (treeSearch(root, |
+ | return false; | ||
+ | return true; | ||
} | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Протестируем работу метода '' | ||
+ | |||
+ | <code java> | ||
+ | int tmpInt; | ||
+ | Random random = new Random(); | ||
+ | |||
+ | ArrayList< | ||
+ | MyBinarySearchTree tree = new MyBinarySearchTree(); | ||
+ | |||
+ | for (int i = 0; i < 10; i++) { | ||
+ | tmpInt = random.nextInt(20); | ||
+ | tree.treeInsert(tmpInt); | ||
+ | list.add(new Integer(tmpInt)); | ||
+ | } | ||
+ | |||
+ | System.out.println(list.toString()); | ||
+ | for (int i = 0; i < 20; i++) { | ||
+ | System.out.println(i + ": " + (list.indexOf(i) >= 0) + " " | ||
+ | + tree.treeSearch(i)); | ||
} | } | ||
</ | </ | ||
Допишите методы '' | Допишите методы '' | ||
+ | |||
+ | ===== Задание. Часть 2 ===== | ||
+ | |||
+ | Преобразуйте написанный вами класс в класс, предназначенный для работы со строками. Получившийся класс должен выглядеть примерно так: | ||
+ | |||
+ | <code java> | ||
+ | public class ModifiedBinarySearchTree{ | ||
+ | private static class Node{ | ||
+ | String data = null; | ||
+ | Node parent = null; | ||
+ | Node left = null; | ||
+ | Node right = null; | ||
+ | |||
+ | Node (String data){ | ||
+ | this.data = data; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | private Node root; | ||
+ | |||
+ | public void treeInsert(String data){ | ||
+ | Node y = null; | ||
+ | Node x = root; | ||
+ | |||
+ | while(x != null){ | ||
+ | y = x; | ||
+ | if(data.compareTo(x.data) < 0) | ||
+ | x = x.left; | ||
+ | else | ||
+ | x = x.right; | ||
+ | } | ||
+ | |||
+ | Node z = new Node(data); | ||
+ | z.parent = y; | ||
+ | |||
+ | if(y == null) | ||
+ | root = z; | ||
+ | else{ | ||
+ | if(data.compareTo(y.data) < 0) | ||
+ | y.left = z; | ||
+ | else | ||
+ | y.right = z; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /* Остальные методы (модифицированные соответствующим образом) */ | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Дан {{: | ||
+ | |||
+ | Код для чтения из файла и записи в файл: | ||
+ | |||
+ | <code java> | ||
+ | /* чтение из файла list_of_countries.txt и сохранение списка стран в виде ArrayList */ | ||
+ | |||
+ | BufferedReader inputFile = null; | ||
+ | try { | ||
+ | inputFile = new BufferedReader(new FileReader(" | ||
+ | } catch (FileNotFoundException e) { | ||
+ | e.printStackTrace(); | ||
+ | } | ||
+ | |||
+ | String tmpString; | ||
+ | ArrayList< | ||
+ | try { | ||
+ | while ((tmpString = inputFile.readLine()) != null) | ||
+ | arr.add(tmpString); | ||
+ | } catch (IOException e) { | ||
+ | e.printStackTrace(); | ||
+ | } | ||
+ | |||
+ | |||
+ | /* запись списка стран в файл alphabetical_list_of_countries.txt */ | ||
+ | |||
+ | BufferedWriter outputFile = null; | ||
+ | try { | ||
+ | outputFile = new BufferedWriter(new FileWriter(" | ||
+ | } catch (IOException e) { | ||
+ | e.printStackTrace(); | ||
+ | } | ||
+ | |||
+ | try { | ||
+ | for (int i = 0; i < arr.size(); i++){ | ||
+ | outputFile.write(arr.get(i)); | ||
+ | outputFile.newLine(); | ||
+ | } | ||
+ | } catch (IOException e) { | ||
+ | e.printStackTrace(); | ||
+ | } finally{ | ||
+ | try{ | ||
+ | if(outputFile != null){ | ||
+ | outputFile.flush(); | ||
+ | outputFile.close(); | ||
+ | } | ||
+ | } | ||
+ | catch(IOException e){ | ||
+ | e.printStackTrace(); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ;#; | ||
+ | [[java: | ||
+ | ;#; | ||