¿Estructuras de datos en C++?

Iniciado por SDCC, 27 Octubre 2018, 02:53 AM

0 Miembros y 1 Visitante están viendo este tema.

SDCC

Buenas a todos.Tengo contemplado leer algun libro y profundizar un poco en el tema de estructuras de datos, actualmente conozco un poco el lenguaje C y ya he realizado algunas estructuras de datos basicas en el ,sin embargo ahora que quiero profundizar en el tema me ha surgido la duda de si deberia profundizar el tema en el lenguaje c/c++ o en algun otro lenguaje como java.

Durante mi búsqueda he visto que existe una gran de contenido sobre este tema enfocado en el lenguaje java pero no me termino de decidir si realmente lo quiero enfocar en ese lenguaje o prefiero explotar aun mas las capacidades que me ofrece c/++ con sus punteros.

Para finalizar me gustaria si me podrian ayudar a confirmar si realmente me seria mas util profundizar el tema en c/c++ o si seria mejor hacerlo en java.Ademas de eso si alguien conoce un buen libro sobre este tema le agradeceria que me pasara el nombre.

Beginner Web

Termina hasta POO con C++ y de ahi ya tienes todo lo necesario para saltar a otro lenguaje, yo manejo C/C++,Java entre otros pero empece logica con raptor y de ahi C++ y de ahi salte a Java y a C, etc ...
7w7

huchoko

Cita de: SDCC en 27 Octubre 2018, 02:53 AM
Buenas a todos.Tengo contemplado leer algun libro y profundizar un poco en el tema de estructuras de datos, actualmente conozco un poco el lenguaje C y ya he realizado algunas estructuras de datos basicas en el ,sin embargo ahora que quiero profundizar en el tema me ha surgido la duda de si deberia profundizar el tema en el lenguaje c/c++ o en algun otro lenguaje como java.

Durante mi búsqueda he visto que existe una gran de contenido sobre este tema enfocado en el lenguaje java pero no me termino de decidir si realmente lo quiero enfocar en ese lenguaje o prefiero explotar aun mas las capacidades que me ofrece c/++ con sus punteros.

Para finalizar me gustaria si me podrian ayudar a confirmar si realmente me seria mas util profundizar el tema en c/c++ o si seria mejor hacerlo en java.Ademas de eso si alguien conoce un buen libro sobre este tema le agradeceria que me pasara el nombre.
En sí, por experiencia propia, te recomendaría aprender un lenguaje de programación de alto nivel primero, ej: Python, Ruby, Perl.
De ahí vas hacia C o C++. Sinceramente no me gusta Java, pero quién sabe, quisas te guste ¯\_(ツ)_/¯
C y C++ son lenguajes muy potentes, pero la falta de tutoriales en español, hace que todo esto de desperdicie.
Por ejemplo, puedes hacer juegos usando Allegro o OpenGL, pero esos son casos en que debes saber inglés. Los tutoriales en español de las librerías anteriormente mencionadas son nulas.
Saludos

SDCC

De antemano ,gracias por responder.Actualmente ya he programado en POO, conozco los conceptos y de forma mas particular he manejado Java pero sin embargo anteriormente ya pase por C y me gusto bastante , sin embargo ahora que ya conozco los conceptos de la POO me interesa continuar con temas mas avanzados combinando paradigmas y la libertad que me da C++.En este caso en el que ya
tengo un poco de experiencia con niveles de alto nivel ¿me recomendaria que siguiera con el tema de "Estructuras de datos" en el lenguaje c/c++? ¿ O que mejorar reforzara mi experiencia en un lenguaje como java?

Beginner Web

Bueno entonces tienes casi todo, ahora pasa a las frameworks  ;-)
7w7

elgilun

Cuando dices "estructuras de datos en C++", ¿a qué te refieres? ¿Puedes poner un ejemplo o un sitio web donde hablen de eso?

SDCC

Hacia referencia al área que estudia las estructuras de datos que se pueden generar en los lenguajes de programacion tales como pilas,colas,arboles binarios,etc.. Y que a la vez mete teoría sobre como ordenar,manipular y manejar estos datos.

Mi pregunta iba encaminada a que si era mejor aprender esto en c/c++ por las ventajas que presentan los apuntadores.

Beginner Web

Asi es, en C/C++ estas estructuras son superfaciles de entender es como un pseudocodigo
7w7

elgilun

No hay C/C++, hay C y hay C++, son dos lenguajes distintos.

El C++ es un lenguaje de alto nivel, si alguna vez se dijo que no, eso pudo haber sido antes del estándar de 1998 (si quieres puedes hacer la cuenta), y como lenguaje de alto nivel tiene todas esas "estructuras de datos" incluidas en su biblioteca estándar.

Por ejemplo:

  • Contenedores de secuencias: array, vector, deque, forward_list, list.
    Contenedores asociativos: set, multiset, unordered_set, unordered_multiset, map, multimap, unordered_map, unordered_multimap
    Y adaptadores para contenedores: stack, queue, priority_queue.

No quiero decir que no valga la pena saber cómo se construyen estos contenedores, por supuesto, pero sin saber que el C++ es un lenguaje de alto nivel ya se está comenzando medio ciego y aturdido por prejuicios de hace más de 20 años (y atrasar 20 años en un lenguaje de programación es atrasar, créeme).

Hay un capítulo sobre contenedores y algoritmos del libro de Stroustrup "The C++ Programming Language" disponible gratis en:
https://isocpp.org/files/papers/4-Tour-Algo-draft.pdf

Si te interesa aprender el C++, ese es un libro que querrás leer.






EdePC

Saludos,

- Básicamente C y C++ son iguales  :xD, OJO básicamente, cuando se empiezan a hacer algoritmos o cursos de iniciación de programación, la diferencia es poca y por ello existen muchos e-books y documentación que dice: Java para programadores de C/C++, comparación de lenguajes C y C++, como programar en C/C++/Java, etc,

-- Todos cursos de iniciación claro está. Pero como dice elgilun, estos son lenguajes diferentes donde se nota más esta diferencia cuando el algoritmo o programa a desarrollar es más complicado.

- Con respecto a las dichosas "estructuras de datos" en C++ que trata el tema, puedo sugerir este PDF con ejemplos:

7. Búsqueda y Ordenación 85
7.1. Algoritmos de Búsqueda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
7.1.1. Búsqueda Lineal (Secuencial) . . . . . . . . . . . . . . . . . . . . . . . . . . 86
7.1.2. Búsqueda Binaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
7.2. Algoritmos de ordenación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
7.2.1. Ordenación por Selección . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
7.2.2. Ordenación por Intercambio (Burbuja) . . . . . . . . . . . . . . . . . . . . . 90
7.2.3. Ordenación por Inserción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
7.3. Aplicación de los Algoritmos de Búsqueda y Ordenación . . . . . . . . . . . . . . . 92


http://www.lcc.uma.es/~vicente/docencia/cppdoc/programacion_cxx.pdf