viciado 1 Denunciar post Postado Março 20, 2010 Eu tenho algumas duvidas sobre teoria de lista encadeada. Nesse codigo (nao coloquei a parte da estrutura) aux->info = value; aux->next = *list; aux->prev = NULL: (*list)->prev = aux; *list = aux; Veja se estou correto: aux->info = value;Pega o "value" na variavel aux aux->next = *list;Ponteiro next da variavel aux apontando para *list (O que é list ? É toda a lista aux->next aponta para toda a lista ?) aux->prev = NULL;Como está inserindo o "value" no inicio a variavel aux->prev tem q ser NULL (*list)->prev = aux; *list = aux; Essa parte eu não entendi O que eu não entendo é os ponteiros: *list, aux (ou seja sem ter next ou prev) Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Março 20, 2010 Viciado, temos N tópicos sobre listas encadeadas. Mas não tem problema. Uma vez fiz uma imagem para explicar o conceito de lista ligada a um membro: http://img39.imageshack.us/img39/9830/linkedlist.png A única diferença é que a lista duplamente encadeada tem um campo que aponta para o próximo nó e outro que aponta para o nó que vem exatamente antes. Por exemplo: estrutura mNo: #declaração da estrutura de uma lista duplamente encadeada int valor mNo proximo, anterior ## ... muito código, onde declara-se a variável 'lista' do tipo mNo ... aux = mNo aux.valor = 10 # Move o valor 10 a aux aux.proximo = lista # estamos adicionando aux à cabeça da lista aux.anterior = NULL # não há nada antes da cabeça da lista lista.anterior = aux # se aux é a cabeça da nova lista, aux vem antes da cabeça da lista antiga lista = aux # atualizamos a lisa, isto é, sem essa linha, 'lista' representaria a lista de elementos após aux ## .. mais código ... Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Março 20, 2010 Viciado, temos N tópicos sobre listas encadeadas. Mas não tem problema. Uma vez fiz uma imagem para explicar o conceito de lista ligada a um membro: http://img39.imageshack.us/img39/9830/linkedlist.png A única diferença é que a lista duplamente encadeada tem um campo que aponta para o próximo nó e outro que aponta para o nó que vem exatamente antes. Por exemplo: estrutura mNo: #declaração da estrutura de uma lista duplamente encadeada int valor mNo proximo, anterior ## ... muito código, onde declara-se a variável 'lista' do tipo mNo ... aux = mNo aux.valor = 10 # Move o valor 10 a aux aux.proximo = lista # estamos adicionando aux à cabeça da lista aux.anterior = NULL # não há nada antes da cabeça da lista lista.anterior = aux # se aux é a cabeça da nova lista, aux vem antes da cabeça da lista antiga lista = aux # atualizamos a lisa, isto é, sem essa linha, 'lista' representaria a lista de elementos após aux ## .. mais código ... Ok. Então quando estou atribuindo a uma variável a variavel *list (variavel = *list) estou ligando essa variavel ao inicio da lista "list" ? Compartilhar este post Link para o post Compartilhar em outros sites