Jump to content
Fórum Script Brasil
  • 0

LIsta duplamente encadeada com operador[]


Septimus C
 Share

Question

8 answers to this question

Recommended Posts

  • 0

Boa tarde!

O que você diz é que criou a estrutura de dados e as funções para manipulá-las e quer saber se pode acessar os dados diretamente, correto?

Como o conceito da TAD é a abstração e independência do seu código da implementação, o uso do array diretamente quebra esse paradigma...

Veja que quebra o conceito da TAD, não o conceito da Lista!

Talvez possam haver opiniões diferentes mas este é o meu ponto de vista. :)

Abraços,

Marcelo Utikawa da Fonseca

Link to comment
Share on other sites

  • 0

Sim quebraria, pois uma lista duplamente encadeada não pode ser acessada como um array.

Veja um exemplo da estrutura de uma lista encadeada:

typedef struct _Lista

{

int elemento;

struct _Lista *prev;

struct _Lista *next;

} Lista;

[code]

Como pode ser observado uma lista encadeada é dinamica, ou seja, pode ser adicionar infinitos elementos, diferente de um vetor que possui um tamanho fixo.

O acesso a um elemento é feito assim:

[code]

int getnum(int p, Lista *ls)

{

Lista *tmp

while(p >= 0)

{

Link to comment
Share on other sites

  • 0

Sim quebraria, pois uma lista duplamente encadeada não pode ser acessada como um array.

Veja um exemplo da estrutura de uma lista encadeada:

typedef struct _Lista

{

int elemento;

struct _Lista *prev;

struct _Lista *next;

} Lista;

[code]

Como pode ser observado uma lista encadeada é dinamica, ou seja, pode ser adicionar infinitos elementos, diferente de um vetor que possui um tamanho fixo.

O acesso a um elemento é feito assim:

[code]

int getnum(int p, Lista *ls)

{

Lista *tmp

while(p >= 0)

{

Link to comment
Share on other sites

  • 0

Sim quebraria, pois uma lista duplamente encadeada não pode ser acessada como um array.

Veja um exemplo da estrutura de uma lista encadeada:

typedef struct _Lista
{
      int elemento;
      struct _Lista *prev;
      struct _Lista *next;
} Lista;
Como pode ser observado uma lista encadeada é dinamica, ou seja, pode ser adicionar infinitos elementos, diferente de um vetor que possui um tamanho fixo. O acesso a um elemento é feito assim:
int getnum(int p, Lista *ls)
{
    Lista *tmp
    tmp = ls;
    while(p >= 0)
    {
         if(tmp->next != NULL)
             tmp = tmp->next;
        p--;
    }
        return tmp->elemento;
}

Edited by Mateus GP
Link to comment
Share on other sites

  • 0

Não foi isso, ocorreu um erro no meu navegador, então cliquei uma vez não enviou, duas tambem não (segundo meu navegador)... Depois quando atualizei já estava este monte de dump, mas da para notar que todas foram eviadas praticamente no mesmo momento.

Mudando um pouco de foco, sou novo no forum e queria saber se quando ocorre isso há algum modo de desfazer o erro.

Edited by Mateus GP
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.5k
×
×
  • Create New...