|
Вопрос # 5 361/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Кто-нибудь может помочь перевести код из C++(вроде он, я не знаю в нем ничего) в Delphi?
Приложение: Переключить в обычный режим- private:
- link insertR (link h,
- { Key v = x.key();
- if ((h->bit >= d)
- Item x, int d, link p)
- || (h->bit <= p->bit))
- {
-
- t->l = (digit (v, t->bit) ? h : t) ;
- t->r = (digit (v, t->bit) ? t : h) ;
- return t; }
- if (digit (v, h->bit) = 0)
- h->l = insertR(h->l, x, d, h) ;
- else h->r = insertR(h->r, x, d, h) ;
- return h;
- }
- public:
- void insert (Item x)
- { Key v = x. key () ; int i ;
- Key w = searchR (head->l, v, -1) . key() ;
- if (v = w) return;
- for (i = 0; digit(v, i) = digit(w, i) ;
- head->l = insertR(head->l, x, i, head);
- }
- ST(int maxN)
- { head = new node (nullItem) ;
- head->l = head->r = head; }
 |
Вопрос задал: NeStor (статус: Посетитель)
Вопрос отправлен: 1 июня 2011, 20:49
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 13; последнее сообщение — 5 июня 2011, 09:39; участников в обсуждении: 5.
|
NeStor (статус: Посетитель), 1 июня 2011, 20:52 [#1]:
фрагмент кода осуществляет вставку элемента в patricia-дерево
|
|
min@y™ (статус: Доктор наук), 1 июня 2011, 20:55 [#2]:
А нахрена переводить-то? Проще ж по алгоритму просто новый код на паскале написать и всё.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
NeStor (статус: Посетитель), 1 июня 2011, 21:00 [#3]:
я в некоторые операции совершенно не вникаю. никогда с С++ не работал. ща сижу ищу материал что там чего означает
|
|
min@y™ (статус: Доктор наук), 1 июня 2011, 21:19 [#4]:
Цитата (NeStor):
я в некоторые операции совершенно не вникаю. никогда с С++ не работал. ща сижу ищу материал что там чего означает
Чтобы написать что-то на паскале, не надо в С++ вникать. Надо:
а) входные данные;
б) что и как из них получить на выходе;
ц) прямые руки и мозги.
Всё.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
NeStor (статус: Посетитель), 1 июня 2011, 21:30 [#5]:
это само собой. тогда пару вопросов, чисто для полного понимания алгоритма.
1) что такое Link и Item?
2) || - это and? или что?
3) link t « new node(x); t->bit = d;
t->l = (digit (v, t->bit) ? h : t) ; - вот здесь вот что вообще происходит? что там за знак вопроса?
прости за тупые вопросы, просто реально не славливаю
|
|
NeStor (статус: Посетитель), 1 июня 2011, 21:35 [#6]:
хотя про знак вопроса я уже посмотрел. мож и другие разберу тогда
|
|
NeStor (статус: Посетитель), 1 июня 2011, 22:16 [#7]:
не, нефига не понятно
|
|
min@y™ (статус: Доктор наук), 1 июня 2011, 22:35 [#8]:
Цитата (NeStor):
1) что такое Link и Item?
Link - это какой-то юзерский тип данных.
Item - тоже тип. Похоже, что это узел дерева
Цитата (NeStor):
2) || - это and? или что?
Это логический "or" (не путать с побитовым).
Цитата (NeStor):
3) link t « new node(x); t->bit = d; t->l = (digit (v, t->bit) ? h : t) ; - вот здесь вот что вообще происходит? что там за знак вопроса?
Здесь символ "«" надо бы заменить на "=", т.к. идёт вызов конструктора и присвоение указателя (я так предполагаю).
Дальше влом разбираться.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
NeStor (статус: Посетитель), 1 июня 2011, 22:48 [#9]:
спасибо и на этом. дальше сам как-нибудь
|
|
Вадим К (статус: Академик), 2 июня 2011, 10:53 [#10]:
знак вопроса - это условный тернарный оператор.
выражение вида
x = a?b:c;
эквивалентно такому на делфи
if a then x := b else x := c;
или, если подключить модуль Math
x := IfThen(a, b, c);
Галочка "подтверждения прочтения" - вселенское зло.
|
|
NeStor (статус: Посетитель), 2 июня 2011, 11:04 [#11]:
спасибо, а
private:
link insertR (link h, Item x, int d, link p)
{ Key v = x.key(); а это типа начало процедуры или функции?
|
|
Толяныч (статус: 4-ый класс), 3 июня 2011, 01:26 [#12]:
Вадим К:
>знак вопроса - это условный тернарный оператор.
> выражение вида
> x = a?b:c;
> эквивалентно такому на делфи
> if a then x := b else x := c;
Когда программил на С, недолюбливал эту конструкцию и никогда ее не использовал. Мне в ней чудится что-то противоестественное, как хоккей на траве.
|
|
Егор (статус: 10-ый класс), 5 июня 2011, 09:39 [#13]:
Цитата (NeStor):
link insertR (link h, Item x, int d, link p)
{ Key v = x.key(); а это типа начало процедуры или функции? в с/с++ нет процедур, только функции. в данном случае функция возвращает значение типа link
Цитата (Толяныч):
Когда программил на С, недолюбливал эту конструкцию и никогда ее не использовал. Мне в ней чудится что-то противоестественное, как хоккей на траве. чудесная конструкция. а в некоторых случаях вообще единственно возможная, без альтернатив.
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|