aboutsummaryrefslogtreecommitdiff
path: root/tp/n2.lyx
diff options
context:
space:
mode:
Diffstat (limited to 'tp/n2.lyx')
-rw-r--r--tp/n2.lyx160
1 files changed, 160 insertions, 0 deletions
diff --git a/tp/n2.lyx b/tp/n2.lyx
new file mode 100644
index 0000000..83ae4b8
--- /dev/null
+++ b/tp/n2.lyx
@@ -0,0 +1,160 @@
+#LyX 2.2 created this file. For more info see http://www.lyx.org/
+\lyxformat 508
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\quotes_language french
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+Muchas veces necesitamos estructuras de datos cuyo tamaño puede ir cambiando
+ con el tiempo.
+ Podemos usar representaciones contiguas (tablas), pero no son eficientes
+ en ciertos casos porque las inserciones y eliminaciones pueden suponer
+ reubicaciones de elementos.
+\end_layout
+
+\begin_layout Standard
+Una
+\series bold
+estructura de datos lineal enlazada con simple enlace
+\series default
+ es una sucesión finita de nodos formados por un elemento y un enlace al
+ siguiente (o una marca de fin como
+\family typewriter
+NULL
+\family default
+ si es el último).
+\end_layout
+
+\begin_layout Standard
+Una estructura de este tipo se gestiona a través de un apuntador al primer
+ nodo, inicialmente con valor
+\family typewriter
+NULL
+\family default
+.
+ Podemos definir, por ejemplo, operaciones para:
+\end_layout
+
+\begin_layout Itemize
+Inicializar y liberar una lista enlazada.
+\end_layout
+
+\begin_layout Itemize
+Imprimir sus elementos, comprobar si contiene uno y cuál es su índice, obtener
+ el apuntador al nodo que contiene un elemento.
+\end_layout
+
+\begin_layout Itemize
+Insertar un elemento al principio, al final, en un cierto índice o detrás
+ de otro dado por el apuntador al nodo.
+ Insertar en una lista enlazada ordenada.
+\end_layout
+
+\begin_layout Itemize
+Eliminar un elemento al principio, al final, en un cierto índice o detrás
+ de otro dado por el apuntador al nodo.
+ Eliminar la primera ocurrencia de un elemento si existe, con un caso especial
+ por eficiencia para cuando la lista está ordenada.
+\end_layout
+
+\begin_layout Standard
+Algunas de estas operaciones pueden requerir modificar el apuntador al primer
+ elemento, y por tanto es necesario pasarles un apuntador a dicho apuntador
+ (o que devuelvan el nuevo valor de este).
+ Para estos podemos añadir al principio un
+\series bold
+nodo de encabezamiento
+\series default
+ que apunta al primer elemento
+\begin_inset Quotes fld
+\end_inset
+
+real
+\begin_inset Quotes frd
+\end_inset
+
+, simplificando el código a cambio de ocupar más memoria.
+ Por otro lado, para ciertas operaciones conviene tener apuntadores tanto
+ al principio como al final de la estructura enlazada.
+\end_layout
+
+\begin_layout Standard
+También existen
+\series bold
+estructuras de datos lineales doblemente enlazadas
+\series default
+, en las que los nodos no apuntan sólo al siguiente elemento sino también
+ al anterior, permitiendo operaciones como eliminar un elemento de la lista
+ con un apuntador al nodo correspondiente en vez de al anterior, por ejemplo.
+
+\end_layout
+
+\end_body
+\end_document