C/Traballar con listas encadeadas: Diferenzas entre revisións

Contido eliminado Contido engadido
Gallaecio (conversa | contribucións)
→‎Engadir bloques á lista: Engadido código para borrar elementos e concepto “bloque” a concepto “elemento”.
Gallaecio (conversa | contribucións)
m “bloque” → “elemento”
Liña 1:
{{Navegador|Traballar con ficheiros|Comentarios}}
 
As '''listas encadeadas''' son un tipo de estrutura lineal de datos. Ao contrario que as [[{{BASEPAGENAME}}/Matrices|matrices]], nas que un [[{{BASEPAGENAME}}/Punteiros|punteiro]] sinala a un bloqueelemento que contén varios datos, nas listas encadeadas un punteiro sinala ao primeiro bloqueelemento de memoria, que á súa vez ─ademais de conter unha serie de datos─ sinala ao segundo, que á súa vez sinala ao terceiro, etc.
 
Mentres que no traballo con matrices o acceso aos datos ─orde lóxica─ adoita facerse do mesmo xeito en que están almacenados ─orde física─, lendo os datos un tras o outro, nas listas encadeadas a orde física e a orde lóxica non coinciden.
Liña 12:
 
==Declaración==
Para declarar unha lista encadeada cómpre ter claro previamente o comportamento das [[{{BASEPAGENAME}}/Estruturas|estruturas]]. Cada elemento da lista ─bloque──elemento─ será unha estrutura conformada polos datos do bloqueelemento e un punteiro a unha estrutura do mesmo tipo, que será o que apunte ao seguinte bloqueelemento (salvo que se trate do derradeiro bloqueelemento da lista encadeada.
 
Por suposto, necesitaremos ademais dos bloqueselementos un punteiro solto que apunte ao primeiro bloqueelemento da lista encadeada. Esta será a única variable local, é dicir, a única que non se vai reservar en memoria dinámica. Cómpre ''inicializar'' este punteiro ao primeiro bloqueelemento co valor nulo, de xeito que isto permita saber que a lista está, en principio, baleira.
 
==Traballo con listas==
Liña 28:
</source>
 
De xeito que se poida acceder a todos os bloqueselementos da lista, pero non se poida modificar o valor do punteiro da lista, é dicir, o punteiro ao primeiro bloqueelemento.
 
===Engadir un elemento á lista===