09.01.2015 Views

Lista de exercícios de Estrutura de Dados - Waltenomartins.com.br

Lista de exercícios de Estrutura de Dados - Waltenomartins.com.br

Lista de exercícios de Estrutura de Dados - Waltenomartins.com.br

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Lista</strong> <strong>de</strong> <strong>exercícios</strong> <strong>de</strong> <strong>Estrutura</strong> <strong>de</strong> <strong>Dados</strong><<strong>br</strong> />

O <strong>de</strong>senvolvimento em grupo máximo <strong>de</strong> dois alunos. Deixe as representações <strong>com</strong>o elas estão no ponto<<strong>br</strong> />

<strong>de</strong>terminado.<<strong>br</strong> />

1) Consi<strong>de</strong>re que existam duas pilhas vazias <strong>de</strong>nominadas S1 e S2, preencha as ilustrações<<strong>br</strong> />

<strong>de</strong> cada uma das pilhas e <strong>de</strong>senvolva as instruções presentes no trecho <strong>de</strong> algoritmo<<strong>br</strong> />

abaixo. Consi<strong>de</strong>re uma rotina chamada Par, que recebe um valor e <strong>de</strong>volve o valor lógico<<strong>br</strong> />

Verda<strong>de</strong> se o número é par e falso se é impar. Preencha as ilustrações <strong>de</strong> cada pilha nos<<strong>br</strong> />

pontos <strong>de</strong>finidos: A, B e C. Deixe as representações das pilhas <strong>com</strong>o elas estão no ponto<<strong>br</strong> />

<strong>de</strong>terminado.<<strong>br</strong> />

A = 0<<strong>br</strong> />

Para X = 12 ate 19 faça<<strong>br</strong> />

empilha(S1,X)<<strong>br</strong> />

fim-para<<strong>br</strong> />

imprima (´passo dois´)<<strong>br</strong> />

enquanto(não( pilha_vazia(S1)))<<strong>br</strong> />

faça<<strong>br</strong> />

x ← <strong>de</strong>sempilha(S1)<<strong>br</strong> />

Se (Par( x))<<strong>br</strong> />

então empilha(S2,x)<<strong>br</strong> />

fim-se<<strong>br</strong> />

fim-enquanto<<strong>br</strong> />

Imprima(´final´)<<strong>br</strong> />

A<<strong>br</strong> />

B<<strong>br</strong> />

C<<strong>br</strong> />

A B C<<strong>br</strong> />

S1 S2 S1 S2 S1 S2<<strong>br</strong> />

2) Consi<strong>de</strong>re que existam duas pilhas vazias <strong>de</strong>nominadas S1 e S2, preencha as ilustrações<<strong>br</strong> />

<strong>de</strong> cada uma das pilhas e <strong>de</strong>senvolva as instruções presentes no trecho <strong>de</strong> algoritmo<<strong>br</strong> />

abaixo. Consi<strong>de</strong>re uma rotina chamada Par, que recebe um valor e <strong>de</strong>volve o valor lógico<<strong>br</strong> />

Verda<strong>de</strong> se o número é par e falso se é impar. Preencha as ilustrações <strong>de</strong> cada pilha nos<<strong>br</strong> />

pontos <strong>de</strong>finidos: A, B e C. Deixe as representações das pilhas <strong>com</strong>o elas estão no ponto<<strong>br</strong> />

<strong>de</strong>terminado.<<strong>br</strong> />

A = 0<<strong>br</strong> />

Para X = 12 ate 19 faça<<strong>br</strong> />

empilha(S1,X)<<strong>br</strong> />

fim-para<<strong>br</strong> />

imprima (´passo dois´)<<strong>br</strong> />

enquanto(não( pilha_vazia(S1)))<<strong>br</strong> />

faça<<strong>br</strong> />

x ← <strong>de</strong>sempilha(S1)<<strong>br</strong> />

Se (Par( x))<<strong>br</strong> />

então empilha(S2,x)<<strong>br</strong> />

fim-se<<strong>br</strong> />

fim-enquanto<<strong>br</strong> />

Imprima(´final´)<<strong>br</strong> />

A<<strong>br</strong> />

B<<strong>br</strong> />

C<<strong>br</strong> />

A B C<<strong>br</strong> />

S1 S2 S1 S2 S1 S2<<strong>br</strong> />

Exercicio <strong>Lista</strong>_Pilha_Fila.doc


Para os próximos <strong>exercícios</strong> (3 e 4), consi<strong>de</strong>re as seguintes rotinas <strong>com</strong>o disponíveis.<<strong>br</strong> />

Pilha_Vazia(p) – retorna T se a pilha P estiver vazia e F se estiver cheia;<<strong>br</strong> />

Pilha_Cheia(p) – retorna T se a pilha P estiver cheia e f se estiver vazia;<<strong>br</strong> />

Empilha(p,x) – insere o elemento X no inicio da pilha P;<<strong>br</strong> />

Desempilha(p) – remove o 1º elemento da pilha P e retorna o conteúdo <strong>com</strong>o valor da função;<<strong>br</strong> />

Imprime(p) – imprime a pilha P.<<strong>br</strong> />

3) Desenhe a evolução da pilha (<strong>de</strong> tamanho máximo <strong>de</strong> 8 elementos) e mostre o que será<<strong>br</strong> />

impresso no ví<strong>de</strong>o, consi<strong>de</strong>rando a execução da seqüência <strong>de</strong> instruções abaixo:<<strong>br</strong> />

Empilha(p,’b’), pilha_cheia(p), Empilha(p,’s’); Empilha(p,’a’), Empilha(p,’c’), Desempilha(p),<<strong>br</strong> />

Desempilha(p), Empilha(p,’h’), Empilha(p,’d’), Empilha(p,’f’); Desempilha(p), Empilha(p,’n’),<<strong>br</strong> />

Empilha(p,’b’), pilha_cheia(p), Desempilha(p), Empilha(p,’m’), Desempilha(p),<<strong>br</strong> />

Desempilha(p), Desempilha(p), Imprime(p), pilha_vazia(p)<<strong>br</strong> />

4) Escreva os <strong>com</strong>andos para montar a pilha apresentada abaixo:<<strong>br</strong> />

a) K b) 2 c) J<<strong>br</strong> />

J 6 7 G<<strong>br</strong> />

H I 9 5 2 S R<<strong>br</strong> />

G 10 4 D K B<<strong>br</strong> />

D E F 3 9 H<<strong>br</strong> />

B C 8 7 F G L<<strong>br</strong> />

A 1 P W<<strong>br</strong> />

Quando há mais <strong>de</strong> um<<strong>br</strong> />

elemento na mesma<<strong>br</strong> />

posição da pilha (linha<<strong>br</strong> />

na representação),<<strong>br</strong> />

significa que o da<<strong>br</strong> />

esquerda foi removido,<<strong>br</strong> />

antes da inclusão do<<strong>br</strong> />

outro elemento. Usar os<<strong>br</strong> />

cinco <strong>com</strong>andos<<strong>br</strong> />

apresentados.<<strong>br</strong> />

Para os próximos <strong>exercícios</strong> (5 e 6), consi<strong>de</strong>re as seguintes rotinas <strong>com</strong>o disponíveis.<<strong>br</strong> />

Fila_Vazia(f) – retorna T se a fila F estiver vazia e F se estiver cheia;<<strong>br</strong> />

fila_Cheia(f) – retorna T se a fila F estiver cheia e F se estiver vazia;<<strong>br</strong> />

Insere(f,x) – insere o elemento X no final da fila F;<<strong>br</strong> />

Remove(f) – remove o 1º elemento da fila F;<<strong>br</strong> />

Imprime(f) – imprime a Fila F.<<strong>br</strong> />

5) Consi<strong>de</strong>re que existam duas filas vazias <strong>de</strong>nominadas F1 e F2. Execute as instruções do<<strong>br</strong> />

trecho <strong>de</strong> algoritmo abaixo. Deixe as representações das filas <strong>com</strong>o elas estão no ponto<<strong>br</strong> />

<strong>de</strong>terminado. Preencha as ilustrações <strong>de</strong> cada fila nos pontos <strong>de</strong>finidos: A, B e C.<<strong>br</strong> />

Consi<strong>de</strong>re que os dados a serem lidos no algoritmo são: { 3, 6, 8, 2, 5, 1, 7, 4, 0, 5}.<<strong>br</strong> />

leia(x)<<strong>br</strong> />

enquanto x 0 faça<<strong>br</strong> />

Insere(F1,x)<<strong>br</strong> />

leia(x)<<strong>br</strong> />

fim-enquanto<<strong>br</strong> />

leia(y)<<strong>br</strong> />

enquanto(não( Fila_vazia(F1))) faça<<strong>br</strong> />

x ← Primeiro(F1)<<strong>br</strong> />

Remove(F1)<<strong>br</strong> />

Se x < y<<strong>br</strong> />

então Insere(F2,x)<<strong>br</strong> />

fim-se<<strong>br</strong> />

fim-enquanto<<strong>br</strong> />

imprima(´final´)<<strong>br</strong> />

A<<strong>br</strong> />

B<<strong>br</strong> />

C<<strong>br</strong> />

Preencher <strong>com</strong> as situações solicitadas:<<strong>br</strong> />

A<<strong>br</strong> />

B<<strong>br</strong> />

C<<strong>br</strong> />

F1<<strong>br</strong> />

F2<<strong>br</strong> />

F1<<strong>br</strong> />

F2<<strong>br</strong> />

F1<<strong>br</strong> />

F2<<strong>br</strong> />

6) Desenhe a evolução da Fila (<strong>de</strong> tamanho máximo <strong>de</strong> 8 elementos) e mostre o que será<<strong>br</strong> />

impresso no ví<strong>de</strong>o, consi<strong>de</strong>rando a execução da seqüência <strong>de</strong> instruções abaixo:<<strong>br</strong> />

Insere(f,’b’), Fila_cheia(f), Insere(f,’s’); Insere(f,’a’), Insere(f,’c’), Remove(f), Remove(f),<<strong>br</strong> />

Insere(f,’h’), Insere(f,’d’), Insere(f,’f’); Remove(f), Insere(f,’n’), Insere(f,’b’), Fila _cheia(f),<<strong>br</strong> />

Remove(f), Insere(f,’m’), Remove(f), Remove(f), Remove(f), Imprime(f), Fila _vazia(f)<<strong>br</strong> />

Exercicio <strong>Lista</strong>_Pilha_Fila.doc

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!