Ir ao conteúdo
  • Cadastre-se

Arvore solução


jerfeson santos

Posts recomendados

Pessoal gostaria de uma ajuda para formulação de uma solução de uma em árvore. Se alguém tiver o código parecido fico grato.

Uma escola de informática possui funcionários em diversos níveis. Esta empresa decidiu desenvolver um programa de consulta onde pudesse pesquisar um funcionário e saber qual a sua função e nível. Elabore um programa utilizando a estrutura árvore para esta pesquisa.

a) Para este programa deve ser usada a seguinte árvore abaixo descrita, onde:

Código Função Funcionário

A Presidente da Empresa Jaime

B Diretor Pedagógico Ana

C Diretor Administrativo – Financeiro Rose

D Apoio Educacional Paulo

E Secretária Escolar Maria

F Tesoureiro Vitor

G Coordenador de Pessoal Carla

H Coordenador Pedagógico Marta

I Auxiliar de Escritório Sandro

J Instrutor Marcos

K Estagiário Jonas

B) O programa deve receber o nome do funcionário e pesquisar na árvore binária seu código. Uma vez com o código o programa deve imprimir o código, nome do funcionário, função e nível hierárquico.

c) Para que isto seja possível, cada raiz da árvore deve possuir um campo para o nome do funcionário e outro campo para o código.

d) Crie uma rotina para imprimir todos os registros da árvore em ordem alfabética de nomes.

e) É importante criar um menu para que o usuário possa decidir entre as duas opções:

- busca e impressão de um registro

- impressão de todos os registros

Link para o comentário
Compartilhar em outros sites

O que já foi feito galera...gostaria de saber como ficaria o programa principal...

unit Uarvore;

interface

uses crt;

type

Dados = string;

ArvB = ^Nodo;

Nodo = Record

esq : ArvB;

dir : ArvB;

obj : Dados;

end;

Dados = Record

nome : string;

codigo : char;

funcao : string;

end;

var

T : ArvB;

op : integer;

cod : char;

nomef, func : string;

//Prototipos das Rotinas

procedure Menu;

procedure TIns (var T:ArvB; cod : char; funcao, nomef: string);

implementation

Procedure TIns (var T:ArvB; cod : char; funcao, nomef: string);

var

cod:obj;

begin

if T=nil then

begin

new(T);

T^.obj.codigo:= cod;

T^.obj.nome:= nomef;

T^.obj.funcao:= func;

T^.esq:= nil;

T^.dir:= nil;

end

else

if (cod < T^.obj.codigo) then

TIns(T^.esq, cod, funcao, nomef)

else

TIns(T^.dir, cod, funcao, nomef);

end;

//Rotina do menu

Procedure Menu;

begin

clrscr;

textcolor(white);

writeln(' Escola de Informatica ');

writeln;

Writeln( '< 0 > Inserir');

Writeln( '< 1 > Buscar');

Writeln( '< 2 > Listar');

Writeln( '< 3 > Sair');

writeln;

write(' Digite sua opcao : ');

readln(op);

writeln;

while (op <> 0) and (op <> 1) and (op <> 2) and (op <> 3) do

begin

writeln(' Opcao Invalida!!');

writeln;

write(' Digite sua opcao : ');

readln(op);

writeln;

writeln;

end;

writeln;

writeln;

if op = 0 then

begin

write('Codigo do Funcionario....: ');

readln(cod);

cod := upcase(cod);

write('Funcao.....: ');

readln(func);

func := upcase(func);

write('Nome do Funcionario.: ');

readln(nomef);

nomef := upcase(nomef);

TIns(T, cod, func, nomef);

end;

begin

end.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...