Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program newsp;
- type list = ^node;
- node = record
- elem: integer;
- next: list
- end;
- var L1: list;
- function BuildList : list;
- var p: list;c: integer;
- begin read(c);
- if (c = 0) then BuildList:=nil
- else begin
- new(p);
- p^.elem := c;
- p^.next := BuildList();
- BuildList := p;
- end;
- end;
- procedure add(var L:list; t: integer);
- var
- p: list;
- begin
- new(p);
- p^.elem := t;
- p^.next := L;
- L := p;
- end;
- function get_last(k : list):integer;
- begin
- while (k^.next <> nil) do
- k := k^.next;
- get_last := k^.elem;
- end;
- procedure del_last (var L:list);
- var
- p: list;
- begin
- if (L = nil) then
- exit;
- if (L^.next = nil) then begin
- dispose(L);
- L := nil;
- end
- else begin
- p := L;
- while (p^.next^.next <> nil) do
- p := p^.next;
- dispose(p^.next);
- writeln(p^.elem);
- p^.next := nil;
- end;
- end;
- procedure whynot(var m : list);
- begin
- add(m, get_last(m));
- del_last(m);
- end;
- begin
- L1:=Buildlist();
- whynot(L1);
- while L1<>nil do begin
- write(L1^.elem, ' ');
- L1:=L1^.next;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement