Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program project1;
- type
- pListitem=^TListitem;
- TListitem=record
- info:integer;
- next:pListitem;
- end;
- var pFirst,pTemp,pNew,pLast:pListitem;
- k,key,znach,otv:integer;
- Function search(key:integer):pListitem;
- begin
- pTemp:=pFirst^.next;
- while pTemp<>nil do
- begin
- if (pTemp^.info=key) then
- begin
- result:=pTemp;
- break;
- end
- else
- begin
- pTemp:=pTemp^.next;
- result:=nil;
- end;
- end;
- end;
- Function search2(key:integer):pListitem;
- begin
- pTemp:=pFirst^.next;
- pLast:=pFirst;
- while (pTemp<>nil) do
- if (pTemp^.info=key) then
- begin
- result:=pLast;
- break;
- end
- else
- begin
- pTemp:=pTemp^.next;
- pLast:=pLast^.next;
- result:=nil;
- end;
- end;
- Procedure AddAfter;
- begin
- if pFirst^.next=nil then
- begin
- writeln('Enter the first element:');
- readln(znach);
- pTemp:=pFirst;
- New(pNew);
- pNew^.info:=znach;
- pNew^.next:=pTemp^.next;
- pTemp^.next:=pNew;
- end
- else
- begin
- writeln('Enter the element after which you want to add:');
- readln(key);
- pTemp:=search(key);
- if (pTemp<>nil) then
- begin
- writeln('Add the element: ');
- readln(znach);
- New(pNew);
- pNew^.info:=znach;
- pNew^.next:=pTemp^.next;
- pTemp^.next:=pNew;
- end
- else
- writeln('ERROR!!!!Element dont find');
- end;
- end;
- Procedure AddBefore;
- begin
- if pFirst^.next=nil then
- begin
- writeln('Enter the first element:');
- readln(znach);
- pTemp:=pFirst;
- New(pNew);
- pNew^.info:=znach;
- pNew^.next:=pTemp^.next;
- pTemp^.next:=pNew;
- end
- else
- begin
- writeln('Enter the element before which you want to add:');
- readln(key);
- pTemp:=search(key);
- pLast:=search2(key);
- if (pTemp<>nil) then
- begin
- writeln('Add the element:');
- readln(znach);
- New(pNew);
- pNew^.info:=znach;
- pNew^.next:=pTemp;
- pLast^.next:=pNew;
- end
- else
- writeln('ERROR!!!!Element dont find');
- end;
- end;
- Procedure DELETE;
- begin
- if pFirst^.next=nil then
- writeln('List Is EMPTY.')
- else
- begin
- writeln('Enter the element which you want delete:');
- readln(key);
- pTemp:=search(key);
- pLast:=search2(key);
- if pTemp<>nil then
- begin
- pLast^.next:=pTemp^.next;
- pTemp:=nil;
- end
- else
- writeln('ERROR!!!!Element dont find');
- end;
- end;
- Procedure output;
- begin
- if pFirst^.next=nil then
- writeln('-----List is EMPTY-----')
- else
- begin
- pTemp:=pFirst^.next;
- writeln('Content of List:');
- while pTemp<>nil do
- begin
- write(pTemp^.info,' ');
- pTemp:=pTemp^.next;
- end;
- end;
- end;
- begin
- New(pFirst);
- pFirst^.next:=nil;
- repeat
- pTemp:=pFirst^.next;
- writeln(' ');
- write(' Content of List: ');
- while pTemp<>nil do
- begin
- write(pTemp^.info,' ');
- pTemp:=pTemp^.next;
- end;
- writeln;
- writeln('-----------MENU----------');
- writeln('1-Add the element AFTER');
- writeln('2-Add the element BEFORE');
- writeln('3-Delete the element');
- writeln('4-Output to monitor');
- writeln('5-Exit');
- writeln;
- readln(otv);
- case otv of
- 1:AddAfter;
- 2:AddBefore;
- 3:DELETE;
- 4:output;
- end;
- until otv=5;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement