2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3  След.
 
 Re: Двоичное дерево поиска
Сообщение15.08.2017, 13:09 


21/05/16
4292
Аделаида
Ой...

-- 15 авг 2017, 19:38 --

Исправил, возникла еще ошибка:
В определении функции write он говорит что у меня в рекурсии write принимает 2 аргумента, а должна 1.
Тут откуда возникла ошибка?

 Профиль  
                  
 
 Re: Двоичное дерево поиска
Сообщение15.08.2017, 14:29 


21/05/16
4292
Аделаида
Ну так откуда ошибка?

 Профиль  
                  
 
 Re: Двоичное дерево поиска
Сообщение15.08.2017, 18:46 
Заслуженный участник
Аватара пользователя


06/10/08
6422
kotenok gav в сообщении #1240825 писал(а):
Ну так откуда ошибка?
kotenok gav, что Вы знаете о первом аргументе self в методах? В строчке self.write(self.lchild) Сколько аргументов должно быть у метода write и какие значения у них будут?

 Профиль  
                  
 
 Re: Двоичное дерево поиска
Сообщение15.08.2017, 19:00 


21/05/16
4292
Аделаида
Ну... Self ведь используется для использования других атрибутов класса?

 Профиль  
                  
 
 Re: Двоичное дерево поиска
Сообщение15.08.2017, 19:05 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Вопрос в другом: откуда берется первый аргумент (self) при вызове метода?

 Профиль  
                  
 
 Re: Двоичное дерево поиска
Сообщение15.08.2017, 19:08 


21/05/16
4292
Аделаида
А... то есть берется self как наше все дерево, а потом еще lchild как его левое ответление?

 Профиль  
                  
 
 Re: Двоичное дерево поиска
Сообщение15.08.2017, 19:33 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Да, поэтому там требуется метод с двумя аргументами, а у Вас есть только с одним.

 Профиль  
                  
 
 Re: Двоичное дерево поиска
Сообщение15.08.2017, 19:41 


21/05/16
4292
Аделаида
Хорошо, а как тогда код подправить?

 Профиль  
                  
 
 Re: Двоичное дерево поиска
Сообщение15.08.2017, 21:34 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
Переписать метод write под работу с двумями аргументами. Как? Попробуйте методом тыка хотя бы.

 Профиль  
                  
 
 Re: Двоичное дерево поиска
Сообщение15.08.2017, 22:00 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Я бы сказал, что надо решить, что именно должен делать метод Tree.write и какие аргументы он должен принимать. А потом на основании этого - либо написать метод с двумя аргументами, если он нужен, либо исправить выражения self.write(self.lchild) и self.write(self.rchild), чтобы они принимали один аргумент.

 Профиль  
                  
 
 Re: Двоичное дерево поиска
Сообщение16.08.2017, 04:05 


21/05/16
4292
Аделаида
А как исправить выражения? Написать self.write(lchild)? Но код тогда будет работать?

 Профиль  
                  
 
 Re: Двоичное дерево поиска
Сообщение16.08.2017, 11:07 
Аватара пользователя


17/04/11
658
Ukraine
kotenok gav в сообщении #1240980 писал(а):
А как исправить выражения? Написать self.write(lchild)? Но код тогда будет работать?

Вы всё время спрашиваете, будет ли код работать. Понятие «работающий код» является вредным для программиста. Полезное понятие — «корректный код». Корректный код — код, удовлетворяющий спецификации. Говоря простым языком, спецификация программы описывает, как результат зависит от аргумента программы, не вдаваясь в детали реализации.

Об этом вам говорит Xaositect.
Xaositect в сообщении #1240928 писал(а):
Я бы сказал, что надо решить, что именно должен делать метод Tree.write и какие аргументы он должен принимать.

Дайте спецификацию метода «write». Как его результат должен зависеть от аргумента, то есть дерева? Как он изменяет дерево и изменяет ли вообще? Название «write» намекает, что метод записывает что-то, наверное, в дерево. Но я не вижу в коде, что метод записывает что-то, зато вижу, что он суммирует. Он должен вычислить сумму чего-то? Чего? Почему бы не назвать его «sum»?

Это не придирки, а просто дружеский совет. Учитесь описывать словами спецификацию программы, и тогда вы будете не задавать вопросы на форуме, а консультировать других людей :D . Без этого вы будете программировать методом тыка, то есть случайно (ну, «интуитивно») менять программу и смотреть, «работает» ли она. Во-первых, такой метод программирования неэффективен. Во-вторых, так получается плохой программный код.

 Профиль  
                  
 
 Re: Двоичное дерево поиска
Сообщение16.08.2017, 11:44 


21/05/16
4292
Аделаида
Write записывает не в дерево а из дерева.
С кодом я уже разобрался.

 Профиль  
                  
 
 Re: Двоичное дерево поиска
Сообщение16.08.2017, 12:43 
Аватара пользователя


17/04/11
658
Ukraine
kotenok gav в сообщении #1241045 писал(а):
С кодом я уже разобрался.

Отлично. Обращайтесь за помощью, если что. :-)

 Профиль  
                  
 
 Re: Двоичное дерево поиска
Сообщение16.08.2017, 20:37 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
kotenok gav в сообщении #1241045 писал(а):
С кодом я уже разобрался.
Не-не, так нечестно. Выкладывайте сюда, что наворотили ;-)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу Пред.  1, 2, 3  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group