You are on page 1of 4

Universidade Federal de Itajub Curso de Mestrado em Cincias e Tecnologia da Computao MCO 0 !

"strutura de #ados $ista de "%erc&cios ' Escreva um Programa Completo, em C/C++, para criar uma Lista Linear Seqencial para o armazenamento de dados (Matrcula, ota!, ota", M#dia e $altas% em ordem crescente (rela&'o de ordem%( Modularize o programa, con)orme ilustrado a seguir*
Main (% Menu (%

1nsere (%

+eri)ica (%

Mostra (%

(' +,rios processos est'o disputando a -nica CP. do seu Sistema Computacional( /odos os processos
possuem a mesma prioridade( .m processo, nesta condi&'o, # en)ileirado com 0ase no crit#rio $1$2( 3 $igura ! ilustra este mecanismo(

P! P"
$ila de Processos esperando pela CP.

CPU

' ' '


Pn
$igura ! 4 $ila de Processos esperando pela CP. do Sistema Computacional "(!( Considere que um processo Pi, i5!,",6,((((,n, retirado da $ila de Processos, # e7ecutado pela CP. (uma -nica vez% e depois vai para a $ila de Processos que esperam pela impressora do sistema( 3 $igura " ilustra este mecanismo( C8egada dos Processos

)istema de "ntrada e )a&da

$ila de Processos esperando por sada

$igura " 4 Processos en)ileirados esperando pela impressora(

Universidade Federal de Itajub Curso de Mestrado em Cincias e Tecnologia da Computao MCO 0 ! "strutura de #ados $ista de "%erc&cios
"("( Simula&'o* .m processo Pi, i5!,",6,((((,n, pode ser representado por um n-mero inteiro, gerado aleatoriamente, com o uso da )un&'o rand(%( 9ere n-meros entre !::: e 6::: para representar os processos( 2 valor de n tam0#m pode ser lido, sendo assim esta0elecido como par;metro para o sistema( 9ere um segundo n-mero aleat<rio entre : e ===( Se o valor estiver entre : e 6:6, insira o processo na $ila de Processos esperando por CP.> se o valor estiver entre 6:? e @:@, retire o processo que est, na CP., se e7istir, e insiraAo na $ila de Processos esperando pela impressora, realimentando a CP. com outro processo> se o valor estiver entre @:B e ===, retire o processo da $ila de Processos esperando pela impressora, se e7istir, e envieAo para impress'o(

*' Escreva um programa que utilize uma )un&'o para )azer a convers'o de um n-mero inteiro, e7presso na 0ase !:, para o seu correspondente 8e7adecimal( Lem0reAse de que !: equivale a 3, !! equivale a C, ((( e !D equivale a $( 3rmazene o resto das divisEes em uma Pil8a( 3o )inal, mostre o conte-do da Pil8a( +' 1mplemente o Programa encontrado no Livro /e7to (Estruturas de Fados, 3aron /enen0aum, MaGron CooGs, !==D%, que converte uma e7press'o da )orma in)i7a para a )orma pos)i7a( +eHa p,gina !"@, Captulo " deste Livro( 3nalise e compreenda este programa( $a&a as corre&Ees, se necess,rio( ,' 3valie a comple7idade do programa do e7erccio anterior( -' +eri)icar se cada uma das ,rvores 0in,rias da )igura a0ai7o # uma ,rvore de 0usca(

!"

"

"!

!D

6=

"?

Universidade Federal de Itajub Curso de Mestrado em Cincias e Tecnologia da Computao MCO 0 ! "strutura de #ados $ista de "%erc&cios .' Considere as seguintes estruturas de dados* tIpede) struct 2J 2 KLL> int C8ave> long Endereco> 2 KLL> M 2> tIpede) struct LE91S/L2 J int C8ave> Ndemais dados, a crit#rio do grupoO MLE91S/L2> onde* C8ave representa a C8ave Prim,ria de certa entrada de um 3rquivo Seqencial 1nde7ado, cuHa /a0ela # de)inida como do tipo LE91S/L2> Endere&o representa o endere&o l<gico de uma inst;ncia (entrada% da /a0ela, associado a certa C8ave, con)orme ilustrado a seguir* LL $il8o esquerdo Por e7emplo*
**00

Endere&o

C8ave Prim,ria

LL $il8o direito

Endere&o L<gico C8ave do Legistro no 3rquivo de Fados

!!R
3 +00

?:: Crito 66 ((((((((((((((((((((( "D: 3lves ?? ((((((((((((((((((((( 6:: Silva ?B


(b)

(.

(,0

((((((( !"B ((((((( ( !6@

(a)

Figura 1 (a) rvore Binria Representando o Arquivo de Chaves, e (b) Arquivo de Dados Associado, de rgani!a"#o $eq%encia& 'nde(ada)

/ede0se1 Escreva um Programa completo, em Linguagem C ou C++, para criar um Sistema de 3rquivo Seqencial 1nde7ado, no qual o 3rquivo de C8aves # representado por uma ,rvore 0in,ria e o arquivo de dados # de organiza&'o aleat<ria, ou randPmica( Cada n< do 3rquivo de C8aves # do tipo 2, e do 3rquivo de Fados # do tipo LE91S/L2( !(! Opera2es de Insero1 Cusque a e7istQncia de um registro com a mesma C8ave, no 3rquivo de C8aves( Caso n'o e7ista, insira o registro, do tipo LE91S/L2, no 3rquivo de Fados, em ordem cronol<gica( 3p<s a inser&'o, o0tido o endere&o l<gico da posi&'o

!(" !(6 !(? !(D

Universidade Federal de Itajub Curso de Mestrado em Cincias e Tecnologia da Computao MCO 0 ! "strutura de #ados $ista de "%erc&cios onde o registro )oi inserido, insira o registro correspondente, do tipo 2, no 3rquivo de C8aves (arquivo ndice%, organizado como uma ,rvore 0in,ria( Opera2es de 4emoo1 Cusque a e7istQncia do registro no 3rquivo de C8aves( Caso e7ista, remova o 2 que cont#m a c8ave localizada, mantendo a ,rvore consistente( 2 3rquivo de Fados n'o # alterado por esta opera&'o( 4elat5rio1 $a&a o percurso em ordem sim#trica na ,rvore do 3rquivo de C8aves, listando, para cada C8ave Primaria, todos os dados associados( Compactao1 Fe tempos em tempos o 3rquivo de Fados # compactado com o o0Hetivo de eliminar os registros n'o re)erenciados pelo 3rquivo de C8aves( 1nclua esta opera&'o em seu so)tSare( /ersistncia1 2 3rquivo de C8aves deve ser armazenado em disco e recuperado toda vez que o so)tSare )or carregado (ativado%(

)ugesto1 Faam em grupos de at6 0* alunos7

You might also like