You are on page 1of 3

-

Khoi tao stack rong Them vao (push) Loai bo (pop) Xem dinh stack (peek)

type ptr = ^item; item = record info: integer; next: ptr; end; procedure init_stack(var sp:ptr): begin sp := nil; end; procedure push(var sp: ptr; x: integer); var p: ptr; begin new(p); p^.info := x; p^.next := sp; sp := p; end; function stack_empty(sp: ptr): boolean; begin stack_empty := sp = nil; end; function pop(var sp: ptr): integer; var p: ptr; begin p := sp; pop := p^.info; sp := p^.next; dispose(p); end; goi: if not stack_empty(sp) then x := pop(sp); function peek(sp: ptr): integer; begin peek := sp^.info; end;

goi: if not stack_empty(sp) then x := peek(sp);

khoi tao hang rong them 1 ptu vao hang loai bo 1 ptu xem 1 ptu

procedure init_queue(var front, rear: ptr); begin front := nil; rear := nil; end; function queue_empty(front: ptr): boolean; begin queue_empty := front = nil; end; procedure enqueue(var front, rear: ptr; x: integer); var p: ptr; begin new(p); p^.info := x; p^.next := nil; if queue_empty(front) then front := p else rear^.next := p; rear := p; end; function dequeue(var front, rear: ptr): integer; var p: ptr; begin p := front; dequeue := p^.info; if front = rear then rear := nil; front := p^.next; dispose(p); end; goi: if not queue_empty(front) then x := dequeue(front, rear); function peek(front: ptr): integer; begin peek := front^.info;

end; goi: if not queue_empty(front) then x := peek(front); type ref = ^node; node = record info: integer; left, right: ref; end; procedure level_traversal(root: ref); begin init_queue(front, rear); if root <> nil then enqueue(front, rear, root); while not queue_empty(front) do begin p := dequeue(front, rear); writeln(p^.info); if p^.left <> nil then end; end;

You might also like