пожайлусто, помогите решить достаточно несложную задачку. Ну никак не могу разобраться.
Создать связный список из трех узлов, а потом удалить второй узел. Без процедур и функций.
вот шапка задачи:
Uses CRT;
Type
TKey=integer;
PNOde=^TNode;
TNode=record
key:TKey; next:PNode; end;
Pascal. Связные списки.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Var
Tmp, Head:PNode;
Последний элемент списка создается так:
Добавить еще 1 элемент в начало можно так: (это делается 2 раза)
Теперь удаляем второй элемент:
Tmp, Head:PNode;
Последний элемент списка создается так:
Код: Выделить всё
New(Head);
whth Head^ do begin
key:=<какое-то значение>;
next:=nil;
end;
Код: Выделить всё
New(Tmp);
whth Tmp^ do begin
key:=<какое-то значение>;
next:=Head;
end;
Head:=Tmp;
Теперь удаляем второй элемент:
Код: Выделить всё
Tmp:=Head^.next; {Tmp теперь указывает на 2 элемент}
Head^.next:=Tmp^.next; {теперь второй элемент вне цепочки. третий на его месте}
Dispose(Tmp); {а теперь его вообще не стало}