• Nenhum resultado encontrado

AULA 8

N/A
N/A
Protected

Academic year: 2022

Share "AULA 8"

Copied!
46
0
0

Texto

(1)

AULA 8

(2)

Listas encadeadas

Uma lista encadeada (= linked list = lista ligada) é uma sequência de células; cada célula contém um objeto de algum tipo e o endereço da célula seguinte.

Ilustração de uma lista encadeada

00000000 11111111

00000000 11111111

00000000 11111111

00000000 11111111

00000000 11111111

00000000 11111111 0000000

0000000 1111111 1111111

0000000 0000000 1111111 1111111

0000000 0000000 1111111 1111111

0000000 0000000 1111111 1111111

0000000 0000000 1111111 1111111

(3)

struct celula { int conteudo;

struct celula *prox;

};

typedef struct celula Celula;

Celula *ini;

/* inicialmente a lista esta vazia */

ini = NULL;

00000000 00000000 11111111 11111111

ini

(4)

Imprime conteúdo de uma lista

Esta função imprime o conteudo de cada célula de uma lista encadeada ini.

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

ini

void imprima (Celula *ini) {

Celula *p;

for (p=ini; p != NULL; p=p->prox) printf("%d\n", p->conteudo);

printf("\n");

(5)

Esta função recebe um inteiro x e uma lista ini. A função devolve o endereço de uma célula que contém x. Se tal célula não existe, a função devolve NULL.

Celula *busca (int x, Celula *ini) {

Celula *p;

p = ini;

while (p != NULL && p->conteudo != x) p = p->prox;

return p;

}

(6)

AULA 9

(7)

PF 4, S 3.3

http://www.ime.usp.br/˜pf/algoritmos/aulas/lista.html

(8)

Inserção no início de uma lista encadeada

Cria uma célula para guardar um elemento x e insere esta célula no início da lista ini.

void insere (int x, Celula *ini) {

Celula nova; ERRADO!

nova.conteudo = x;

nova.prox = ini;

ini = &nova;

}

A estrutura nova é uma variável local

(=automática). Ela será devolvida ao sistema no

(9)

Cria uma célula para guardar um elemento x e insere esta célula no início da lista ini.

void insere (int x, Celula *ini) {

Celula *nova;

nova = mallocSafe(sizeof(Celula));

nova->conteudo = x;

nova->prox = ini;

ini = nova; ERRADO!

}

Mesmo erro! O parâmetro ini é uma variável

local (=automática) que começa inicializada com

valor do argumento.

(10)

Inserção no início de uma lista encadeada

Cria uma célula para guardar um elemento x e insere esta célula no início da lista ini.

Celula *insere (int x, Celula *ini) { Celula *nova;

nova = mallocSafe(sizeof(Celula));

nova->conteudo = x;

nova->prox = ini;

return nova;

}

Certo! Exemplos de chamadas da função

ini = insere(11,ini);

(11)

Cria uma célula para guardar um elemento x e insere esta célula no início da lista ini.

void insere (int x, Celula **ini) { Celula *nova;

nova = mallocSafe(sizeof(Celula));

nova->conteudo = x;

nova->prox = *ini;

*ini = nova;

}

Certo! Exemplos de chamadas da função insere(11,&ini);

insere(valor+3,&ini);

(12)

Inserção no início de uma lista encadeada

Cria uma célula para guardar um elemento x e insere esta célula no início da lista ini.

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000 1111

ini

?

(13)

Cria uma célula para guardar um elemento x e insere esta célula no início da lista ini.

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111 00000000

00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111

ini

nova

? ?

(14)

Inserção no início de uma lista encadeada

Cria uma célula para guardar um elemento x e insere esta célula no início da lista ini.

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111 00000000

00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000 1111

0000000 0000000 1111111 1111111

0000 1111

ini

x ?

(15)

Cria uma célula para guardar um elemento x e insere esta célula no início da lista ini.

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111 00000000

00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111

0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000

1111111 1111111 1111111 1111111 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111

ini

x

nova

(16)

Inserção no início de uma lista encadeada

Cria uma célula para guardar um elemento x e insere esta célula no início da lista ini.

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000 1111

0000000 0000000 1111111 1111111

00000000 00000000 11111111 11111111

0000 1111

ini

x

(17)

Recebe o endereço p de uma célula de uma lista encadeada e remove da lista a celula p->prox.

A função supõe que p != NULL e p->prox != NULL.

void remove (Celula *p) {

Celula *morta;

morta = p->prox;

p->prox = morta->prox;

free(morta);

}

(18)

Remoção em uma lista encadeada

Recebe o endereço p de uma célula de uma lista encadeada e remove da lista a celula p->prox.

A função supõe que p != NULL e p->prox != NULL.

00000000 11111111

00000000 11111111 00000000

00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

ini

?

(19)

Recebe o endereço p de uma célula de uma lista encadeada e remove da lista a celula p->prox.

A função supõe que p != NULL e p->prox != NULL.

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 00000000

00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

p morta

ini

(20)

Remoção em uma lista encadeada

Recebe o endereço p de uma célula de uma lista encadeada e remove da lista a celula p->prox.

A função supõe que p != NULL e p->prox != NULL.

00000000 11111111

00000000 11111111 00000000

00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

ini

(21)

Recebe o endereço p de uma célula de uma lista encadeada e remove da lista a celula p->prox.

A função supõe que p != NULL e p->prox != NULL.

00000000 00000000 11111111 11111111 00000000

00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111

morta

?

ini

p

(22)

Busca e Inserção em uma lista

Recebe uma lista ini e insere uma célula de

conteúdo x antes da primeira célula de conteúdo y.

Se nenhuma célula contém y, insere a célula com y no final da lista.

Celula *

buscaInsere(int x, int y, Celula *ini) { Celula *p, *q, *nova;

nova = mallocSafe(sizeof(Celula));

nova->conteudo = x;

if (ini == NULL || ini->conteudo == y){

nova->prox = ini;

ini = nova;

(23)

else {

p = ini;

q = p->prox;

while (q!=NULL && q->conteudo!=y){

p = q;

q = p->prox;

}

p->prox = nova;

nova->prox = q;

}

return ini;

}

(24)

Chamadas de buscaInsere

Celula *ini, *ini2;

ini = ini2 = NULL;

[...manipulação das listas ...]

ini = buscaInsere(22, 33, ini);

ini2 = buscaInsere(x+1, y, ini2);

ini2 = buscaInsere(x, 2*y, ini2);

(25)

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

00000000 00000000 11111111 11111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

ini

nova

(26)

Busca e Inserção em uma lista

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

00000000 00000000 11111111 11111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111

00000000 11111111

ini

?

(27)

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111 00000000

00000000 11111111 11111111

00000000 00000000 11111111 11111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111

ini

nova

? ?

(28)

Busca e Inserção em uma lista

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111 00000000

00000000 11111111 11111111

00000000 11111111

0000000 0000000 1111111 1111111

00000000 11111111

ini

?

x

(29)

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111 00000000

00000000 11111111 11111111

00000000 00000000 11111111 11111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111

ini

nova

x

(30)

Busca e Inserção em uma lista

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111 00000000

00000000 11111111 11111111

00000000 11111111

0000000 0000000 1111111 1111111

00000000 11111111

ini

x

(31)

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111

ini

y

nova

?

(32)

Busca e Inserção em uma lista

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 11111111

ini

?

y

(33)

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111 00000000

00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

ini

y

nova

? ?

(34)

Busca e Inserção em uma lista

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111 00000000

00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 11111111

00000000 11111111 0000000 0000000 1111111 1111111

ini

y

x ?

(35)

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111 00000000

00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

ini

y

nova

x

(36)

Busca e Inserção em uma lista

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111 00000000

00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 11111111

00000000 11111111 0000000 0000000 1111111 1111111

ini

y

x

(37)

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

ini

y

nova p q

? ? ?

(38)

Busca e Inserção em uma lista

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 11111111 00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 11111111 0000000 0000000 1111111 1111111

00000000 11111111 00000000

11111111

ini

? ?

y

?

?

(39)

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111 00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111 00000000

00000000 11111111 11111111

nova ini

x ?

y

p q

? ?

(40)

Busca e Inserção em uma lista

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 11111111 00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 11111111 0000000 0000000 1111111 1111111

00000000 11111111 00000000

11111111

ini

x ?

y

?

(41)

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111 00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111 00000000

00000000 11111111 11111111

nova ini

x ?

y

p q

(42)

Busca e Inserção em uma lista

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 11111111 00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 11111111 0000000 0000000 1111111 1111111

00000000 11111111 00000000

11111111

ini

x ?

y

(43)

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111 00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111 00000000

00000000 11111111 11111111

nova ini

x ?

y

p q

(44)

Busca e Inserção em uma lista

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 11111111 00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 11111111 0000000 0000000 1111111 1111111

00000000 11111111 00000000

11111111

ini

x

y

(45)

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111 00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 00000000 11111111 11111111 00000000

00000000 11111111 11111111

nova ini

x

y

p q

(46)

Busca e Inserção em uma lista

Insere uma célula de conteúdo x antes da primeira célula de conteúdo y. Se nenhuma célula contém y, insere a célula com y no final da lista.

00000000 00000000 11111111 11111111 0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111 00000000

00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111

00000000 00000000 11111111 11111111 0000000

0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

0000000 0000000 0000000 0000000 1111111 1111111 1111111 1111111

00000000 11111111 0000000 0000000 1111111 1111111

ini

x

y

Referências

Documentos relacionados

78 Figura 3.27 Padrão de difração de pós obtido para o complexo ácido nalidíxico:Zn através (a) de síntese por solução, em comparação com os difractogramas

Elas são proc essadas no córtex pré-frontal e incluem: controle executivo e inibitório; capacidade de abstração; atenção; concentração; plan ejamento; flexibilidade;

Crie uma classe Aluno, contendo um atributo ArrayList para floats que corresponde ao histórico de notas de um aluno.A classe terá como métodos:.. • Construtor, instanciando

Frequentemente vêm-se bacilos dentro e ao redor dos núcleos do tecido conjuntivo (Estampa X, Fig. 8), portanto, embora não seja visível o corpo da célula, temos a concluir que

Como 0 Projeto Integrado visa destacar, tanto no trabalho cHnico-terapeutico, quanto no de pesquisa, a questao do sentido/significacao, e como nos sujeitos cerebro- lesados 0 que

· Indicações sobre cuidados médicos urgentes e tratamentos especiais necessários Não existe mais nenhuma informação relevante disponível.. 5 Medidas de combate

Diante dos estudos realizados neste trabalho, e com a obtenção dos resultados tendo o tampão B-R como eletrólito suporte, fica evidente de que o sistema proposto —

Como não se conhece parâmetros hematológicos do pacu-manteiga Mylossoma duriventre Cuvier, 1817, a proposta do presente estudo foi descrever tais parâmetros em espécimes