|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Списки (2 курс университета)
Здравствуйте. Есть задача:
Дан список(не массив), его нужно разобрать в два списка так, что бы в одном были четные а в другом нечетные. Списки однонаправленные. Так получилось, что занятия я пропустил и материалом не владею совершенно. http://slexy.org/view/s2hUlShG91 - код похожей задачи. Сделано на паскале. Сделать можно как на делфи, так и на паскале. Помогите, буду бесконечно благодарен. |
#2
|
|||
|
|||
Как определить четное число или нет? Разделить на 2 при помощи оператора mod (остаток от числа) если = 5 то не четное, если 0 то четное... вот и все...
|
#3
|
|||
|
|||
Ну так в чем проблема? Открываем книгу, односвязные списки и читаем ее, там нет ничего сложного, или обращаемся в раздел работа, делать работу за вас мало кто захочет.
|
#4
|
|||
|
|||
читаешь элемент из входного списка, далее перецепляешь его либо к четным, либо к нечетным в зависимости от ситуации:
Код:
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; |
#5
|
|||
|
|||
Цитата:
|
#6
|
|||
|
|||
Цитата:
|
#7
|
|||
|
|||
Цитата:
Тебе и так инфы вагон дали... |
#8
|
|||
|
|||
Цитата:
|
#9
|
||||
|
||||
Вообще в Паскале и в Дельфи есть специальная функция Odd(х) которая возвращает истина если число нечетное.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |