2014 dxdy logo

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

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




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

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

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

 
 
 
 Re: Двоичное дерево поиска
Сообщение15.08.2017, 14:29 
Ну так откуда ошибка?

 
 
 
 Re: Двоичное дерево поиска
Сообщение15.08.2017, 18:46 
Аватара пользователя
kotenok gav в сообщении #1240825 писал(а):
Ну так откуда ошибка?
kotenok gav, что Вы знаете о первом аргументе self в методах? В строчке self.write(self.lchild) Сколько аргументов должно быть у метода write и какие значения у них будут?

 
 
 
 Re: Двоичное дерево поиска
Сообщение15.08.2017, 19:00 
Ну... Self ведь используется для использования других атрибутов класса?

 
 
 
 Re: Двоичное дерево поиска
Сообщение15.08.2017, 19:05 
Аватара пользователя
Вопрос в другом: откуда берется первый аргумент (self) при вызове метода?

 
 
 
 Re: Двоичное дерево поиска
Сообщение15.08.2017, 19:08 
А... то есть берется self как наше все дерево, а потом еще lchild как его левое ответление?

 
 
 
 Re: Двоичное дерево поиска
Сообщение15.08.2017, 19:33 
Аватара пользователя
Да, поэтому там требуется метод с двумя аргументами, а у Вас есть только с одним.

 
 
 
 Re: Двоичное дерево поиска
Сообщение15.08.2017, 19:41 
Хорошо, а как тогда код подправить?

 
 
 
 Re: Двоичное дерево поиска
Сообщение15.08.2017, 21:34 
Аватара пользователя
Переписать метод write под работу с двумями аргументами. Как? Попробуйте методом тыка хотя бы.

 
 
 
 Re: Двоичное дерево поиска
Сообщение15.08.2017, 22:00 
Аватара пользователя
Я бы сказал, что надо решить, что именно должен делать метод Tree.write и какие аргументы он должен принимать. А потом на основании этого - либо написать метод с двумя аргументами, если он нужен, либо исправить выражения self.write(self.lchild) и self.write(self.rchild), чтобы они принимали один аргумент.

 
 
 
 Re: Двоичное дерево поиска
Сообщение16.08.2017, 04:05 
А как исправить выражения? Написать self.write(lchild)? Но код тогда будет работать?

 
 
 
 Re: Двоичное дерево поиска
Сообщение16.08.2017, 11:07 
Аватара пользователя
kotenok gav в сообщении #1240980 писал(а):
А как исправить выражения? Написать self.write(lchild)? Но код тогда будет работать?

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

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

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

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

 
 
 
 Re: Двоичное дерево поиска
Сообщение16.08.2017, 11:44 
Write записывает не в дерево а из дерева.
С кодом я уже разобрался.

 
 
 
 Re: Двоичное дерево поиска
Сообщение16.08.2017, 12:43 
Аватара пользователя
kotenok gav в сообщении #1241045 писал(а):
С кодом я уже разобрался.

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

 
 
 
 Re: Двоичное дерево поиска
Сообщение16.08.2017, 20:37 
Аватара пользователя
kotenok gav в сообщении #1241045 писал(а):
С кодом я уже разобрался.
Не-не, так нечестно. Выкладывайте сюда, что наворотили ;-)

 
 
 [ Сообщений: 31 ]  На страницу Пред.  1, 2, 3  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group