Estructuras y mecanismos de datos

ESTRUCTURAS Y MECANISMOS DE DATOS

blog

Desde siempre la información a formado parte de nuestra vida, ayudándonos a razonar y tomar decisiones, solucionando problemas y situaciones en las cuales nos vemos involucrados día con día, esta información está conformada por datos tomados del ambiente que nos rodea, o de experiencias particulares, ideas, pensamientos esporádicos, y muchas otras fuentes.

En la informática las estructuras  y mecanismos de datos constituyen en sí mismos dos mundos, y dado que son herramientas para construir un programa, además de la experiencia es conveniente disponer del conjunto más completo posible de ellas.  Por ejemplo, si nos referimos a los algoritmos, los métodos de ordenación («Sort») o de construcción de índices, han sido muy estudiados, de forma que se conoce cuáles son los más eficientes para cada caso. Si el lenguaje no los tiene preconstruidos, tendremos que fabricarlos manualmente con los medios disponibles. En este aspecto, un lenguaje es tanto mejor cuanto más abstractas sean las herramientas que nos ofrezca (estructuras y mecanismos de datos). Lo que significa que estarán más cercanas a la idea que tiene en mente el programador-humano y más alejadas de la forma concreta que adoptarán en la máquina. Este es precisamente el significado de la expresión «Lenguaje de alto o bajo nivel», el mayor o menor grado de proximidad que ofrezcan sus herramientas con las ideas en la mente humana.

Al abordar un problema y decidirse por una estructura o mecanismo de datos concreto, hay un aspecto importante que debe ser tomado en cuenta por el programador. Es el hecho de que unas estructuras son más adecuadas para determinados mecanismos que otras. Dicho en otras palabras: las relaciones entre las estructuras de datos y los algoritmos que las manipulan son muy significativas. Por ejemplo: determinadas estructuras son muy adecuadas para operaciones de inserción y recuperación, de forma que los algoritmos que realizan estas operaciones son muy simples y rápidos. En cambio estas mismas estructuras pueden ser inadecuadas para buscar información en su interior. Resulta por tanto, que la relación de cada tipo de estructura de datos con los mecanismos básicos, inserción, borrado y búsqueda, es muy diferente, y debemos pensar detenidamente qué relación tiene nuestra estructura con los mecanismos básicos y como la usaremos.

Tanto las estructuras como los mecanismos de datos son importantes. De hecho, en el diseño de programas caben dos enfoques, según las consideraciones iniciales consideren prioritarias a unas u otros. En algunos casos la elección de la estructura de datos es lo primero a considerar del diseño, ya que la experiencia ha indicado que el trabajo total de desarrollo y la calidad del resultado dependen grandemente de la idoneidad de las estructuras utilizadas. Una vez elegidas, la elección del mecanismo es una consecuencia directa de la decisión anterior. En otros casos la línea de razonamiento sigue el camino inverso; se deciden las estructuras porque ciertas operaciones críticas utilizan algoritmos que funcionan mejor en esas estructuras.

La preponderancia de uno u otro criterio se deja sentir incluso en el diseño de los lenguajes de programación e incluso de los sistemas operativos. Los lenguajes orientados a objetos (como C++) están diseñados alrededor del concepto estructura de los datos, mientras en otros, por ejemplo Lisp, el diseño se centra en el aspecto algorítmico. Al tratar de las plantillas («Templates»), se comenta más ampliamente la relación entre datos y algoritmos.

Como verán los datos siempre estarán involucrados en los problemas y la solución que le damos a cada problema, y en la informática se traduce en datos que nos ayudan en la creación de sistemas de información, que nos permitan la solución de requerimientos específicos, por lo cual los datos son la base de la creación de sistemas, ya que sin estos no sería posible formar un programa.

Para tener un poco más de información sobre estas estructuras y mecanismos te recomiendo el siguiente video que explica un poco más sobre el tema:

https://www.youtube.com/watch?v=Aqftq6nlgnM

Esta entrada fue publicada en Sin categoría. Guarda el enlace permanente.

Deja un comentario