Beruflich Dokumente
Kultur Dokumente
http://www.icmc.usp.br/~sce182/arvbin.html
Instituto de Cincias Matemticas de So Carlos Departamento de Computao e Estatstica SCE182 - Algoritmos e Estruturas de Dados 1 Profs. Resp.: Graa Pimentel e Maria Cristina
rvore Binria
Uma rvore Binria T um conjunto finito de elementos denominados ns ou vrtices, tal que: T = 0 e a rvore dita vazia ou existe um n especial r, chamado raiz de T, os restantes podem ser divididos em dois subconjuntos disjuntos, Tre e Trd, que so as subrvores esquerda e direita de r, respectivamente e as quais, por sua vez, tambm so rvores binrias.
1 de 4
25/2/2008 20:33
rvore Binria
http://www.icmc.usp.br/~sce182/arvbin.html
Criar um filho esquerda de um dado n Verificar qual o nvel de um dado n Retornar o pai de um dado n 1. Definir uma rvore vazia Definir uma rvore vazia deve ser utilizado antes de qualquer outro.
Procedure Define(var t: tree); Begin t:=nil; End;
4. Criar um filho direita de um dado n Busca elemento contendo Item_Pai Se Item_Pai ainda no possui filho direita, ento cria um filho sua direita com o contedo de item.
Procedure Adicionar_Dir(t: tree; item_pai, item: Telem) Var pai, no: tree; Begin pai:=Localiza(t,item_pai); If(pai<>nil) Then If (pai^.dir<>nil) Then erro("item j possui subrvore direita") Else Begin New(n); no^.esq:=nil; no^.dir:=nil; no^.info:=item; pai^.dir:=n; End; End;
2 de 4
25/2/2008 20:33
rvore Binria
http://www.icmc.usp.br/~sce182/arvbin.html
6. Verificar qual o nvel de um dado n Retorna o nvel onde est um n com item pesquisado Se item no existe retorna zero
Function Nvel (t: tree; item: Telem): integer; Var n: integer; achou:boolean; Procedure Travessia (ptr: tree; VAR niv: integer; item:Telem; VAR achou:boolean); Begin If ptr<>nil Then Begin niv:=niv+1; If Igual(ptr^.info, item) Then achou:=TRUE; Else Begin Travessia(ptr^.esq, niv, item, achou); If (NOT achou) then Travessia(ptr^.dir, niv, item, achou); If (NOT achou) Then niv:=niv-1; End; End; End; Begin {nvel} achou:= false; n:= 0; Travessia(t,n,item, achou); nivel:=n; End;
7. Retornar o pai de um dado n Dado um item, procura se item existe na rvore Caso positivo retorna o contedo do pai do n
Function Pai(t: tree; item:Telem):Telem; Var achou: boolean; it : Telem; Procedure Travessia(t: tree; item: Telem; var it: Telem; var achou:Boolean); Begin If not Vazia(t) Then Begin If t^.esq<>nil Then If Igual(item, t^.esq^.info) Then Begin achou:=true; it:=t^.info; End; If not achou Then If t^.dir<>nil Then If Igual(item, t^.dir^.info) Then Begin achou:=true; it:=t^.info; End;
3 de 4
25/2/2008 20:33
rvore Binria
http://www.icmc.usp.br/~sce182/arvbin.html
If not achou Then Travessia(t^.esq, item, it, achou); If not achou Then Travessia(t^.dir, item, it, achou); End; End; {Travessia} Begin {pai} If not Vazia(t) Then Begin achou:=false; If Igual(item, t^.info) Then pai:=t^.info; {pai do raiz ele prprio} Else Begin Travessia(t,item,it,achou); pai:=it; End; End; End;
Modos de Travessia
rvore
ndice
4 de 4
25/2/2008 20:33