Advertisement
Guest User

Untitled

a guest
Jan 20th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.17 KB | None | 0 0
  1. type
  2.   StudentPointer = ^StudentNode;
  3.   StudentNode = record
  4.     Fam, Name, Otch: String;
  5.     ID, OcVM, OcProg, OcFiz: Integer;
  6.     nextNode: StudentPointer;
  7.   end;
  8.  
  9. var
  10.   Head, Tail: StudentPointer;
  11.  
  12. procedure AddStudent(Name: String);
  13. var
  14.   Node: StudentPointer;
  15. begin
  16.   //Node := New(Node);
  17.   New(Node);
  18.   Node^.Name := Name;
  19.   Tail^.nextNode := Node;
  20.   Tail := Node;
  21. end;
  22.  
  23. procedure AddStudentAtHead(Student: StudentPointer);
  24. var
  25.   Node: StudentPointer;
  26.   OldHead: StudentPointer;
  27. begin
  28.   if head <> nil then
  29.   begin
  30.     OldHead := Head;
  31.     Head := Student;
  32.     Head^.nextNode := OldHead;
  33.   end;
  34. end;
  35.  
  36. procedure DeleteStudent(ID: Integer);
  37. var
  38.   PrevNode, Node: StudentPointer;
  39.   ID_Search: Integer;
  40. begin
  41.   Node := Head;
  42.   ID_Search := Node^.Id;
  43.   PrevNode := nil;
  44.   while ID_Search <> ID do
  45.   begin
  46.     PrevNode := Node;
  47.     Node := Node^.nextNode;
  48.     ID_Search := Node^.Id;
  49.   end;
  50.  
  51.   if PrevNode = nil then
  52.   begin
  53.     PrevNode^.nextNode := Node^.nextNode;
  54.     Dispose(Node);
  55.   end;
  56.  
  57. end;
  58.  
  59. begin
  60.   //Head := New(Head);
  61.   New(Head);
  62.   Tail := Head;
  63.  
  64.   var pid: integer;
  65.   readln(pid);
  66.   DeleteStudent(pid);
  67. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement