![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Здравствуйте. Есть задача:
Дан список(не массив), его нужно разобрать в два списка так, что бы в одном были четные а в другом нечетные. Списки однонаправленные. Так получилось, что занятия я пропустил и материалом не владею совершенно. http://slexy.org/view/s2hUlShG91 - код похожей задачи. Сделано на паскале. Сделать можно как на делфи, так и на паскале. Помогите, буду бесконечно благодарен. |
|
#2
|
|||
|
|||
|
Как определить четное число или нет? Разделить на 2 при помощи оператора mod (остаток от числа) если = 5 то не четное, если 0 то четное... вот и все...
|
|
#3
|
|||
|
|||
|
Ну так в чем проблема? Открываем книгу, односвязные списки и читаем ее, там нет ничего сложного, или обращаемся в раздел работа, делать работу за вас мало кто захочет.
|
|
#4
|
|||
|
|||
|
Цитата:
|
|
#5
|
|||
|
|||
|
Цитата:
Тебе и так инфы вагон дали... |
|
#6
|
|||
|
|||
|
Цитата:
|
|
#7
|
||||
|
||||
|
Вообще в Паскале и в Дельфи есть специальная функция Odd(х) которая возвращает истина если число нечетное.
|
|
#8
|
|||
|
|||
|
читаешь элемент из входного списка, далее перецепляешь его либо к четным, либо к нечетным в зависимости от ситуации:
Код:
type
PItem = ^TItem;
TItem = record
V : Integer;
Next : PItem;
end;
var
Src : PItem; // исходный список. заполнишь сам
Tgt1 : PItem;
Tgt2 : PItem;
Buf : PItem;
begin
Tgt1 := Nil;
Tgt2 := Nil;
While Src <> Nil Do
Begin
Buf := Src;
Src := Src.Next;
If (Buf.V mod 2) = 0 // четный
Then Buf.Next := Tgt2
Else Buf.Next := Tgt1;
End;
end; |
|
#9
|
|||
|
|||
|
Цитата:
|