1)Обеспечение произвольного количества добавленных элементов с клавиатуры (не используя "random" , внести изменения в InitNode)
2) Обеспечить удаление элемента списка по ключу , внести изменения в DeleteNode
3) Организовать операции с двухсвязным списком (переделать в двухсвязный список) , +prev(предыдущий элемент )
Помогите пожалуйста , надо очень срочно ! За ранее большое спасибо !!!!
program Number_LIST;
{$APPTYPE CONSOLE}
uses
SysUtils;
Type
NodePointer=^Node;
Node=Record
s:integer;
next:NodePointer;
end;
Var first:NodePointer;
function InitNode:NodePointer ;
var newNode:NodePointer;
begin
New(newNode);
newNode^.s:=Random(99)+1;
newNode^.next:=NIL;
InitNode:=newNode;
end;
procedure IncludeNode(newNode: NodePointer);
begin
newNode^.next:=first;
first:=newNode;
end;
procedure DeleteNode(k:integer);
var previos, current:Nodepointer;
i :integer;
begin
i:=0;
current:=first;
while current<>NIL do begin
i:=i+1;
if i=k then begin
if first=current then first:=current^.next
else previos^.next:=current^.next;
dispose(current);
break;
end;
previos:=current;
current:=current^.next;
end;
end;
procedure PrintNodeList;
var
p:NodePointer;
begin
writeln;
p:=first;
while p<>NIL do
begin
write(p^.s:3,' ') ;
p:=p^.next;
end;
end;
Var i,m,n:integer;
begin
first:=Nil;
Randomize;
n:=17;
for I := 1 to n do IncludeNode(InitNode);
PrintNodeList;
writeln;
m:=2;
DeleteNode(m);
PrintNodeList;
readln;
end.
Операции со списками, Ввести изменения в код для: |