|
krasun ↓
|
 |
|
29 Октябрь, 2009, 09:47:11
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Джедаи
Группа: Джедаи Карма: 41
Сообщений: 1379 Сила слова: 2.97
|
Делаю класс - друг. Друг может подружится с другими друзьями. Дружба взаимная, если я дружу Васю с Петей, то и Петя дружит с Васей. Так у каждого друга, получается, что-то вроде списка друзей.
Задача сделать поиск друга напрямую и косвенно. Напрямую, я сделал, это легко и понятно, нужно просто ответить дружит ли Вася напрямую с Петей. А вот косвенно, это значит через кого-то. Тут я не много уже задумался. Может подкинете идеи или кто-то уже решал подобное.
namespace Friendship
{
class Friend
{
/* Имя */
private String Name;
/* Список друзей */
private ArrayList Relations;
/*
*
* Устанавливает начальное значение имени
* и выделяет память под Relations.
*
* */
public Friend (String name )
{
this. SetName(name );
this. Relations = new ArrayList();
}
/*
*
* Метод создает взаимную связь между
* текущим и указанным другом.
*
* */
public void ConnectTo (Friend f )
{
this. Relations. Add(f );
f. Relations. Add(this);
}
/*
*
* Метод разрывает связь между текущим и
* указанным другом.
*
* */
public void DisconnectWith (Friend f )
{
this. Relations. Remove(f );
f. Relations. Remove(this);
}
/*
*
* Метод поиска друга на прямую. Отвечает на вопрос: "Знаком
* ли текущий друг с указанным на прямую?"
*
* */
public bool IsDirectConnectWith (Friend f )
{
return this. Relations. Contains(f );
}
/*
*
* Метод поиска косвенных связей.
* Сообщает связан ли текущий друг с указанным,
* любыми другими связями.
*
* */
public bool IsAccrossConnectWith (Friend f )
{
// если связан на прямую, то дальше
// искать нет смысла
if (this. IsDirectConnectWith(f ))
{
return true;
}
}
/*
*
* Метод, который устанавливает имя.
*
* */
public void SetName (String name )
{
this. Name = name;
}
/*
*
* Метод возвращает имя.
*
* */
public String GetName ()
{
return this. Name;
}
}
}
Подсветку сделал через java
|
|
|
|
« Последнее редактирование: 29 Октябрь, 2009, 09:46:09 от krasun »
|
Записан
|
|
|
|
|
krasun ↓
|
 |
|
29 Октябрь, 2009, 04:54:17 , спустя
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Джедаи
Группа: Джедаи Карма: 41
Сообщений: 1379 Сила слова: 2.97
|
Может есть где литература?
|
|
|
|
|
Записан
|
|
|
|
|
phpdude ↓
|
 |
|
29 Октябрь, 2009, 04:56:02 , спустя 1 минуту 45 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 345
Сообщений: д-о-х-у-я! Сила слова: 1.66
|
/*
*
* Метод, который устанавливает имя.
*
* */
public void SetName(String name)
{
this.Name = name;
}
почитай про сеттеры и геттеры в .нет, ты написал в стиле пхп.
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
krasun ↓
|
 |
|
29 Октябрь, 2009, 04:58:32 , спустя 2 минуты 30 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Джедаи
Группа: Джедаи Карма: 41
Сообщений: 1379 Сила слова: 2.97
|
/*
*
* Метод, который устанавливает имя.
*
* */
public void SetName(String name)
{
this.Name = name;
}
почитай про сеттеры и геттеры в .нет, ты написал в стиле пхп.
phpdude, я знаю, что такое геттеры и сеттеры в .NET, сейчас мне просто удобно явно указывать.
Мне бы с поиском что-то придумать, задача интересная. Спустя 56 секунд добавил Я просто не знаю как такой тип поиска называется, это же не дерево, это какой-то граф выходит с кучей перемешанных связей.
|
|
|
|
|
Записан
|
|
|
|
|
CTAPbIu_MABP ↓
|
 |
|
29 Октябрь, 2009, 07:03:53 , спустя 2 часа 5 минут 21 секунду
|
НЕ ХУЕТА!
ХУЕТА!
|
мавр
Группа: в ухо Карма: не нужна
Сообщений: 5187 Сила слова: 1.81
|
почему код не подкрашен? ктото с классами снрова мудрил? Спустя 1 минуту 35 секунд добавил krasun, почитай про класс LinkedList он по идеи должен быть и в c# может немного иначе называется
|
|
|
|
|
Записан
|
java.lang.OutOfMemoryError
|
|
|
|
phpdude ↓
|
 |
|
29 Октябрь, 2009, 07:06:12 , спустя 2 минуты 19 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 345
Сообщений: 20793 Сила слова: 1.66
|
почему то мне кажется тут никакой арифметики, а тупой перебор ... ))
либо всех кто в куче знаком складывать в общую кучу и в ней потом уже искать :)
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
krasun ↓
|
 |
|
29 Октябрь, 2009, 07:13:15 , спустя 7 минут 3 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Джедаи
Группа: Джедаи Карма: 41
Сообщений: 1379 Сила слова: 2.97
|
Тоже думаю так сделать, пока что не могу придумать какой-то алгоритм Спустя 4 минуты добавил CTAPbIu_MABP, а у меня разве связной список? У меня получается один из узлов может иметь множество ссылок на другие узлы Спустя 1 минуту 29 секунд добавил но идею понял, поищу что нибудь в этом направлении, на крайний случай, все в кучу и перебор
|
|
|
|
|
Записан
|
|
|
|
|
CTAPbIu_MABP ↓
|
 |
|
29 Октябрь, 2009, 07:23:18 , спустя 10 минут 3 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
мавр
Группа: в ухо Карма: не нужна
Сообщений: 5187 Сила слова: 1.81
|
krasun, вообще это две(три) таблицы со связями многие ко многим но если тебе надо без базы то наверное линкедлист это лучшее что я могу предложить
|
|
|
|
|
Записан
|
java.lang.OutOfMemoryError
|
|
|
|
krasun ↓
|
 |
|
29 Октябрь, 2009, 09:43:49 , спустя 2 часа 20 минут 31 секунду
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Джедаи
Группа: Джедаи Карма: 41
Сообщений: 1379 Сила слова: 2.97
|
CTAPbIu_MABP, мне без базы. Я именно хочу понять алгоритм. Я такое видел в соц. сетях: Вы дружите с Антоном через Петра, а Петр через Ивана. И так полный путь.
Я рисовал сначал граф, но в их теории я не силен. Решение примерно прикинул. Ходить по этим узлам, запоминать какой прошел, и так далее... Еще посмотрю связанные списки, как ты и сказал, спасибо.
|
|
|
|
|
Записан
|
|
|
|
|
Mr.Pihto ↓
|
 |
|
02 Ноябрь, 2009, 08:45:28 , спустя 3 дня 23 часа 1 минуту 39 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
Код: Java
а код вроде C )
|
|
|
|
|
Записан
|
|
|
|
|
krasun ↓
|
 |
|
02 Ноябрь, 2009, 08:53:21 , спустя 7 минут 53 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Джедаи
Группа: Джедаи Карма: 41
Сообщений: 1379 Сила слова: 2.97
|
Код: Java
а код вроде C )
не, не C, это C#. Просто C#, не подсвечивался.
|
|
|
|
|
Записан
|
|
|
|
|
Mr.Pihto ↓
|
 |
|
02 Ноябрь, 2009, 09:47:41 , спустя 54 минуты 20 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
ну я имел ввиду С#.. хотя С# и Java близки Спустя 15 секунд добавил по синтаксису
|
|
|
|
|
Записан
|
|
|
|
|
krasun ↓
|
 |
|
05 Ноябрь, 2009, 10:00:59 , спустя 3 дня 13 минут 18 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Джедаи
Группа: Джедаи Карма: 41
Сообщений: 1379 Сила слова: 2.97
|
АХУЕТЬ, я решил это. Теперь, я смогу ответить на вопрос.
Знаком ли Вася с Федором. Спустя 25 секунд добавил Единственное, что сейчас я нахожу не кратчайший путь правда Спустя 34 секунды добавил Загвоздка была, в том что это не дерево и здесь могут быть циклические связи.
|
|
|
|
« Последнее редактирование: 05 Ноябрь, 2009, 10:00:59 от krasun »
|
Записан
|
|
|
|
|
adw0rd ↓
|
 |
|
06 Ноябрь, 2009, 12:10:10 , спустя 2 часа 9 минут 11 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
эдво
Группа: в ухо Карма: не нужна
Сообщений: 17634 Сила слова: 1.67
|
Давай алгоритмы в студию)
|
|
|
|
|
Записан
|
|
|
|
|
krasun ↓
|
 |
|
06 Ноябрь, 2009, 12:51:42 , спустя 41 минуту 32 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Джедаи
Группа: Джедаи Карма: 41
Сообщений: 1379 Сила слова: 2.97
|
Обязательно, только чуть позже, нужно код привести в порядок, доделать пару методов и описать ))
|
|
|
|
|
Записан
|
|
|
|
|