1 / 11

LISTAS “LINKADAS”

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).

fisseha
Download Presentation

LISTAS “LINKADAS”

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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) A localização dos elementos em Listas “Linkadas” pode estar em qualquer lugar da memória. Fator importante - numa representação seqüencial, a ordem dos elementos é a mesma de uma lista ordenada. NO caso de Lista “linkada”, a ordem não necessariamente é a mesma.

  2. F . . . - wat eat cat fat 3 5 bat 9 4 9 7 4 3 8 LISTAS “LINKADAS” (cont.) Acesso correto ao próximo elemento para Listas “linkadas” - é necessário ter uma outra informação indicando 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

  3. LISTAS “LINKADAS” (cont.) Capacidade de dividir a informação em Dado 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

  4. Link Dado LISTAS “LINKADAS” (cont.) Supõe-se que  um mecanismo de criar um tipo Nó com duas partes: Dado e Link; Também supõe-se que  duas funções new e delete respectivamente para criar um novo Nó e para devolver um Nó Nó

  5. 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”; } }

  6. 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 ( ); }

  7. 1 100 10 50 p p p p last first last last last Esta implementação refere-se à qual estrutura de dados já vista??? FILA - utilizando lista “linkada”

  8. Top P I L H A . . .

  9. 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ÍCIO: Utilizando o recurso de ALOCAÇÃO DINÂMICA, implementar as operações sobre uma lista “linkada”.

  10. coef exp link 1 0 2 8 3 14 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) A(x) = 3x14 + 2x8 + 1

  11. 2 7 2 9 2 14 2 7 2 8 2 9 5 14 1 0 1 0 2 8 3 14 A = pa B = pb EXERCÍCIO: Utilizando o recurso de ALOCAÇÃO DINÂMICA, implementar a soma de polinômios.

More Related