мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| java:elective:lesson_03_12_14 [12/03/2014 07:52] – создано nbazhenov | java:elective:lesson_03_12_14 [19/03/2014 06: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: | ||
| + | ;#; | ||