11
LISTAS “LINKADAS” Mapeamento Seqüencial tem-se o problema de -organizar as seqüências de informações nas erações de inserções e remoções ma solução elegante para mover dados em epresentações seqüenciais é o uso de istas “Linkadas” (Linked Lists) ocalização dos elementos em Listas “Linkadas e estar em qualquer lugar da memória. Fator ortante - numa representação seqüencial, a em dos elementos é a mesma de uma lista enada. NO caso de Lista “linkada”, a ordem n essariamente é a mesma.

LISTAS “LINKADAS”

  • Upload
    fisseha

  • View
    26

  • Download
    0

Embed Size (px)

DESCRIPTION

LISTAS “LINKADAS”. No Mapeamento Seqüencial tem-se o problema de re-organizar as seqüências de informações nas operações de inserções e remoções. Uma solução elegante para mover dados em representações seqüenciais é o uso de Listas “Linkadas” (Linked Lists). - PowerPoint PPT Presentation

Citation preview

Page 1: LISTAS “LINKADAS”

LISTAS “LINKADAS”No Mapeamento Seqüencial tem-se o problema dere-organizar as seqüências de informações nasoperações de inserções e remoções

Uma solução elegante para mover dados emrepresentações seqüenciais é o uso deListas “Linkadas” (Linked Lists)

A localização dos elementos em Listas “Linkadas”pode estar em qualquer lugar da memória. Fatorimportante - numa representação seqüencial, aordem dos elementos é a mesma de uma listaordenada. NO caso de Lista “linkada”, a ordem nãonecessariamente é a mesma.

Page 2: LISTAS “LINKADAS”

LISTAS “LINKADAS” (cont.)

Acesso correto ao próximo elemento para Listas“linkadas” - é necessário ter uma outra informaçãoindicando a localização desse próximo elemento.

Convenção usada para representar Listas “linkadas”:NÓ, que consiste dos dados junto com informação do“link” para ter acesso ao próximo

bat cat eat fat wat. . . -

8 3 4 9 7

3 4 9 5

F

Page 3: LISTAS “LINKADAS”

LISTAS “LINKADAS” (cont.)

Capacidade de dividir a informação emDado e Link NóMecanismo para “criar” um novo NóMecanismo para “devolver” um Nó para memória

A L O C A Ç Ã O D I N Â M I C A

Page 4: LISTAS “LINKADAS”

Supõe-se que um mecanismo de criar um tipoNó com duas partes: Dado e Link;Também supõe-se que duas funções new e deleterespectivamente para criarcriar um novo Nóe para devolverdevolver um Nó

LISTAS “LINKADAS” (cont.)

Dado Link

Page 5: LISTAS “LINKADAS”

class Node{ private:

int dado;Node * link;

public:Node ( ) { dado = 0; link = 0; }~Node ( ) { }

int getDado ( ) { return dado; }void putDado ( int valor ) { dado = valor; }

Node* getLink ( ) { return link; }void putLink ( Node * p ) { link = p; }

void printOn ( ) { cout << dado << “\n”; }}

Page 6: LISTAS “LINKADAS”

class List{ private:

Node *first, *last; public:

List ( ) { }~List ( ) { }

void insert ( int elemento ){ Node * p = new Node; p->putDado ( elemento ); if ( first == 0 ) first = last = p; else { last->putLink ( p ); last = p; }}

void printon ( );}

void printOn ( ){ Node * p = first; while ( p != 0 ) { cout << p->printOn(); p = p->getLink( ); }}

void main ( ){ List l1; l1.insert ( 100 ); l1.insert ( 1 ); l1.insert ( 10 ); l1.insert ( 50 ); l1.printOn ( );}

Page 7: LISTAS “LINKADAS”

p

100

firstlast

p

1

lastp

10

lastp

50

last

Esta implementação refere-se à qual estrutura de dados já vista???

FILA - utilizando lista “linkada”

Page 8: LISTAS “LINKADAS”

.

.

.

Top

P I L H A

Page 9: LISTAS “LINKADAS”

Operação de inserção na Pilha utilizando estrutura de lista “linkada”

insereNaPilha ( Node * Top, Type elemento ){ Node * p = new Node p->Dado = elemento

if ( Top == 0 ) Top = p else { p->Link = Top Top = p }}

E a operação de remoção?

EXERCÍCIOEXERCÍCIO: Utilizando o recurso de ALOCAÇÃO DINÂMICA,implementar as operações sobre uma lista “linkada”.

Page 10: LISTAS “LINKADAS”

SOMA DE POLINÔMIOS

O problema de manipular polinômios utilizando listas “linkadas” éum exemplo clássico.

Representar qualquer número de diferentes polinômios (Memória)

xaxaxA ee

m

m 1

1 ...)(

coef exp link

A(x) = 3x14 + 2x8 + 1

3 14 2 8 1 0

Page 11: LISTAS “LINKADAS”

3 14 2 8 1 0

2 14 2 9 2 7

A =

B =

pa

pb

5 14 2 9 2 8 2 7

1 0

EXERCÍCIOEXERCÍCIO: Utilizando o recurso de ALOCAÇÃO DINÂMICA,implementar a soma de polinômios.