Форум программистов, компьютерный форум CyberForum.ru

Бинарное дерево поиска(удаление елемента) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Математические значения в программе http://www.cyberforum.ru/cpp-beginners/thread1837912.html
Как вписать в программу "Корень третьей степени из:2.6/1.1х; десятичный логарифм корень из е в степени х+25; натуральный логарифм корень третьей степени из: 100х?
C++ Ошибка char-array initialized from wide string Доброго времени суток! Вот программы, которые были выложены, одна на сайте среди уроков-примеров, другая же выложена на форуме. В обоих этих случаях, люди в последующих комментариях, развивали тему - а можно еще прикрутить то и это, можно там динамически двигаться там и много чего другого... Вообще никто не написал что не компилируется, вообще никто. Ошибки одинаковые ... http://www.cyberforum.ru/cpp-beginners/thread1837906.html
Заменить cout на printf C++
Помогите пожалуйста заменить строчку из кода с cout на printf: cout << mass << " "; Полный код: #include <iostream> using namespace std; int main() { /* Установим размер массива */
C++ Присвоение объектов (списков) в C++
Доброго дня суток! Создал объект - однонаправленный список, в котором нужно реализовать функцию присвоения списков. Присвоить список у меня получается, а вот вывести его на экран никак не могу, т.к. указатель на след элемент указывает на NULL и при попытке вывода программа выводит пустой список. Помогите #pragma once #include <iostream> using namespace std; struct elem {
C++ Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора http://www.cyberforum.ru/cpp-beginners/thread1837863.html
Помогите решить. Вроде что-то набросал, но что-то не идет. Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от x1 до xn с шагом dx и с точностью е. Каждая строка таблицы должна содержать значения аргумента, значения функции и кол-во просуммированных членов ряда ...
C++ Cannot convent 'int *' to 'int' добрый день! Помогите пожалуйста, надо отсортировать массив по главной диагонали по возрастанию. Массив динамический, выскакивает ошибка Cannot convent 'int *' to 'int'. C builder void __fastcall TForm1::Button2Click(TObject *Sender) { int**arr; int n=StrToInt(Edit1->Text); int m=StrToInt(Edit2->Text); подробнее

Показать сообщение отдельно
olegos15
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 50
30.10.2016, 13:31     Бинарное дерево поиска(удаление елемента)
Есть задание в котором нужно создать бинарное дерево поиска з заданими ключами и значениями которые нужно ввести с клавы удалить из него буквосоединение "ED" и вивести ето в консоль в виде дерева например
ED
/ \
EE EF
/ \ \
DS DD DE
и так дальше вместо вывода в виде
ED EE ES EK итд
пограму поиска и удаления написал но если задавать елементы через в коде через put елементы удаляются а если через сканер то нет вот код
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
package lab5TA;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
 
public class BinTree<K extends Comparable, V> {
 private int size;
 static int num;
 private StringBuilder inString;
 private class Node {
 K key;
 V value; 
 Node right, left;
 Node k4d;
public Node(K key, V value) {
this.key = key;
this.value = value;}}
  private Node root;
private static Scanner input;
  
 private Node find(K key) {
     if (root == null) {
     return null;    }
     Node iterator = root; 
     Node required = root; 
     while (iterator != null) { 
     required = iterator; 
     if (key.compareTo(iterator.key) > 0) {
     iterator = iterator.right;
     } else if (key.compareTo(iterator.key) < 0) {
     iterator = iterator.left;
     } else {
     iterator = null;}}
     return required;}
 public void put(K key, V value) {
     Node node = new Node(key, value); 
     if (root == null) {
     root = node;return; }
     Node parent = find(key);
     if (key.compareTo(parent.key) > 0) {
     parent.right = node;
     } else if (key.compareTo(parent.key) < 0) {
     parent.left = node;
     } else {
     parent.value = node.value;} size++; }
 public int getSize() {
     return size;
    }
 public V get(K key) {
     Node required = find(key);
     return required.key.compareTo(key) == 0 ? required.value : null;}
 private Node getSuccessor(Node removableRight) { 
      if (removableRight.left == null) {
      return removableRight; 
      }
      Node iterator = removableRight;
      Node successor = removableRight; 
      Node successorParent = removableRight; 
      while (iterator != null) {
    
      successorParent = successor;
      successor = iterator;
      iterator = iterator.left;
     }
      successorParent.left = successor.right; 
     
      successor.right = removableRight; 
      return successor;
     }
 public boolean remove(K key) {
     Node removable = root;
     Node parent = root; 
     boolean isLeft = true; 
     while (key.compareTo(removable.key) != 0) { 
     parent = removable;
     if (key.compareTo(removable.key) < 0) {
     removable = removable.left;
     isLeft = true;
     } else if (key.compareTo(removable.key) > 0) {
     removable = removable.right;
     isLeft = false;}
     if (removable == null) {
     return false; }}
     if (removable.left == null && removable.right == null) {
     if (removable == root) {
     root = null; 
     } else if (isLeft) {
     parent.left = null;
     } else {
     parent.right = null;}}
     else {
         Node successor = getSuccessor(removable.right); 
         if (removable == root) { 
        root = successor;
         }
        
        else if (isLeft) {
         parent.left = successor;
         } else {
         parent.right = successor;
         }
         successor.left = removable.left; 
        }
         size--; 
         return true; 
    }
 private String walk(Node node) {
     if (node != null) {
     walk(node.left);
     inString.append(node.value + " "); 
     walk(node.right);
     }
     return inString.toString();
    }
 public String toString() {
     inString = new StringBuilder();
     return walk(root);
    }
 public void deleteel(Node node, V value){
     if (node !=null){
         deleteel(node.left,value);
         if (node.value == value) 
            remove(node.key);
         deleteel(node.right,value);
     }
 
    
 }
 
 public void delete(V value){
     deleteel(root, value);
 
 }
public static void main(String args[]) throws IOException{ int k;
String S;
    BinTree<Integer, String> tree = new BinTree<>();
    input = new Scanner(System.in);
    for(int i=0;i<8;i++){
 
    tree.put(input.nextInt(), input.next());}
/*  tree.put(70, "ED");
    tree.put(90, "EE");
    tree.put(43, "EF");
    tree.put(19, "AD");
    tree.put(37, "DF");
    tree.put(92, "FD");
    tree.put(85, "DF");
    tree.put(107, "SS");*/
    System.out.println("Елемнти дерева:");
    System.out.println(tree);
    System.out.println("Елементи дерева без заданого вузла:");
    tree.delete("ED");
    
    System.out.println(tree);
}
 }
и так проблема с графическим виводом в консоль и с вводом
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru