Estructura de datos, ¿por qué puedo entenderla cada vez que escucho las conferencias del profesor, pero no tengo idea cuando programo por mi cuenta?
Conozco a algunos estudiantes que estudian ingeniería en comunicaciones y que ahora tienen problemas para encontrar trabajo porque sus estudios no son ni suaves ni difíciles. Su software no es tan bueno como el de ciencias de la computación, y su hardware no es tan bueno. buenos como los de información electrónica, por ejemplo, durante la prueba escrita en Huawei, casi todos los estudiantes de comunicaciones reprobaron. Así que te sugiero que te especialices en un campo. Todos los estudiantes de comunicación que conozco se centran en el software. La estructura de datos es la base del software, por lo que es muy importante.
Escribir más programas es una buena manera de aprender estructuras de datos. Primero, domine C y escriba más programas en estructuras de memoria, principalmente listas de secuencias, listas enlazadas, pilas, colas, árboles, etc. La teoría de grafos rara vez se prueba durante las entrevistas (con la excepción de la búsqueda y otros campos, Google a menudo prueba la teoría de grafos), por lo que no es necesario que sea un foco de atención. También hay relativamente pocas pruebas de búsqueda (a excepción de bases de datos y direcciones de búsqueda), centrándose principalmente en la búsqueda binaria y las tablas hash (el hash es muy importante, y hay muchas pruebas en direcciones de procesamiento de datos de gran tamaño. Por ejemplo, Baidu se especializa en hash . La clasificación es la pregunta más frecuente en las entrevistas. Debe comprender cómo se calculan la complejidad del tiempo y la complejidad del espacio. La recursividad también se prueba a menudo. Siempre que considere el problema de acuerdo con los hábitos de pensamiento normales de las personas, podrá dominar fácilmente la recursividad.
Al aprender sobre estructuras de memoria, debe pensar en ello junto con ejemplos reales. ¿Por qué debería implementarse esta estructura? Por ejemplo, las operaciones de reversión o las evaluaciones de expresiones requieren el uso de pilas y las operaciones de transacción. de pilas y la expansión dinámica de la memoria requieren listas enlazadas, el posicionamiento aleatorio requiere listas secuenciales, etc.
A menudo hay algunos algoritmos complicados en los libros de estructura de datos. Si realmente no puedes entenderlos, puedes omitirlos primero y esperar hasta que hayas acumulado algo de experiencia para leerlos. Nosotros en la Facultad de Ciencias de la Computación tuvimos la misma sensación al aprender estructuras de datos. Nos resultó difícil, pero después de un año, cuando tenemos una gran experiencia y hemos escrito muchos programas, ya no nos resulta difícil.
En resumen, necesita escribir más programas. No puede simplemente leer libros, implementar el pseudocódigo escrito en los libros usted mismo y encontrar algunos ejemplos reales para implementar la estructura de datos usted mismo.