¿Qué idioma se utiliza para la estructura de datos?
Pregunta 1: ¿Cuál es la relación entre la estructura de datos y el lenguaje? La estructura de datos en sí no tiene nada que ver con las convenciones del idioma, lo que significa que solo hay una versión de la estructura de datos. En cuanto a qué idioma debe elegir aprender, puede decidir según sus preferencias y fortalezas personales. C, C y Java son buenas opciones. La relación entre la estructura de datos y el lenguaje es como un teorema matemático y el lenguaje natural que lo describe. Puedes expresar el teorema de Pitágoras en chino, o puedes expresarlo en inglés, francés o cualquier idioma del mundo, pero solo hay uno. Teorema de Pitágoras en el mundo. Por supuesto, si no conoce ningún idioma, no podrá aprender bien las estructuras de datos. Si planea utilizar el lenguaje C en el futuro, puede considerar la estructura de datos como la mejora y el desarrollo del lenguaje C.
Pregunta 2: ¿Qué lenguaje se utiliza para aprender estructuras de datos? ¿Con qué lenguaje de programación está familiarizado?
Simplemente busque un libro de estructura de datos del lenguaje de programación correspondiente para aprender.
De esta manera es más fácil de aprender
Pregunta 3: ¿Son las estructuras de datos comunes a todos los lenguajes de programación? La estructura de datos es una herramienta, lo importante es su idea. La implementación específica no importa. JAVA y C son simplemente diferentes en apariencia (solo hablamos de código de idioma). Los algoritmos y las estructuras de datos son lo mismo. La "Introducción a los algoritmos" es todo pseudocódigo, que utiliza CAL similar a C y PAdin. Aquellos que estudien JAVA o .NET todavía pueden verlo.
Así que está bien que LZ use esto, pero si no puedes entender el lenguaje C o tienes problemas con la implementación del código... entonces no hay nada que puedas hacer... será mejor que consigas libros que se puede entender por instinto
Se recomienda que LZ utilice libros más clásicos. Copiar libros es demasiado serio ahora =. =
Pregunta 4: ¿Cuál es el mejor lenguaje para aprender estructuras de datos? Ja, debe ser lenguaje C.
Pregunta 5: ¿Qué lenguaje utiliza para escribir sus algoritmos de estructura de datos? Al diseñar un curso sobre escritura de estructuras de datos, excepto la primera suma, resta, multiplicación y división de enteros largos, que se escribió en lenguaje C, los siguientes diseños del curso usaron C. Creo que las estructuras de datos deberían usar C, que es objeto -orientado
Pregunta 6: ¿Cuál es la llamada estructura de datos en lenguaje C? La llamada estructura es la forma organizativa, y la estructura de los datos es cómo se organizan los datos, es decir, cómo se describen y cómo se almacenan en la computadora. Los diferentes tipos de datos tienen diferentes formas organizativas (estructuras de datos). Por ejemplo, si alineamos a los estudiantes en una clase según su número de estudiantes, podemos usar "matriz" para describirlo, y si queremos dibujar el pedigrí de una familia. , comenzando desde los antepasados, cuando los descendientes y los descendientes extienden sus hojas, pueden describirse como "árboles" porque dichos datos están organizados como un árbol. Las matrices y los árboles operan de diferentes maneras al insertar datos, eliminar datos, etc. Si quieres programar, debes tener algunos conocimientos sobre estructuras de datos. Porque primero necesitas saber cómo describir los datos.
Pregunta 7: ¿Hasta qué punto puedo comprender la estructura de datos después de aprender el lenguaje C? Aprenda los conceptos básicos de C y pueda usar C de manera competente para completar algunos programas pequeños básicos. Es importante conocer los punteros (esto es muy importante) utiliza punteros, listas vinculadas, pilas, diagramas de árbol, etc. Por lo general, puede comenzar de esta manera. Si no comprende la estructura de datos, regrese y lea C. Ambos lados se pueden mejorar
Pregunta 8: ¿En qué idioma está la estructura de datos de flujo abierto? El conmutador OpenFlow se hizo público en Interop Las Vegas 2011. Se hizo público y causó mucha controversia.
SDN permite a los ingenieros de redes controlar y administrar sus redes para satisfacer mejor sus necesidades individuales, aumentando así la funcionalidad de la red y reduciendo el costo de operación de la red. La Open Networking Foundation admite la especificación OpenFlow, que en última instancia permitirá la creación de redes definidas por software.
OpenFlow es un conjunto de API de software que permiten a un controlador enviar información de configuración a un conmutador.
Esta configuración a menudo hace referencia a una secuencia y a determinadas operaciones adjuntas a ella.
Un flujo es un conjunto definido de tramas o paquetes (similar a un flujo MPLS) y un conjunto de operaciones. Por ejemplo:
IP/Puerto de origen, IP/Puerto de destino y Drop.
IP de origen, IP de destino y acción de QoS.
MAC de origen, MAC de destino y ruta L2.
Con OpenFlow puedes enviar un conjunto de reglas a un switch o router que configura el dispositivo. Cada dispositivo utiliza estos datos según su tipo. El conmutador actualiza su tabla de direcciones MAC para reenviar tramas, el enrutador agrega listas de acceso y el firewall actualiza sus reglas.
A medida que las organizaciones migran la configuración de red de dispositivos a plataformas de software, los conmutadores se vuelven más simples y económicos. Pero el principal beneficio es que la configuración de la red puede gestionarse mediante un controlador central.
Un controlador es una pieza de software que contiene algoritmos, matemáticas, análisis y reglas de un conjunto de reglas y utiliza OpenFlow para descargar configuraciones a dispositivos de red. Por lo tanto, la red puede reconfigurarse dinámicamente a medida que el controlador evalúa y reequilibra la configuración. Esto se llama redes definidas por software.
HP Networking: HP ha invertido muchos recursos en OpenFlow. He visto una demostración de la funcionalidad QoS que HP presentó al comité y la empresa tiene un plan de software integral para la plataforma del controlador.
NEC: Puede que no hayas oído que NEC también es un proveedor de red, pero esta empresa tiene una línea completa de productos que se han vendido en el mercado estadounidense de NEC. NEC ha realizado varias contribuciones importantes a OpenFlow y tiene una línea completa de conmutadores que admiten OpenFlow. En Interop, NEC demostró su controlador OpenFlow.
Cisco: Aunque el gigante de las redes es miembro de la Open Networking Foundation, no he podido encontrar sus planes para OpenFlow. Es posible que Cisco sienta que OpenFlow socava el software iOS como producto con fines de lucro. La ventaja más destacada de OpenFlow es la reducción del coste de los conmutadores de hardware, pero no aportará ninguna mejora a las ventas de los proveedores de redes.
Avaya: Aunque la empresa ha hecho grandes esfuerzos en la estrategia Shortest Path Bridging, hasta donde yo sé, la empresa actualmente no tiene ningún plan para OpenFlow.
Arista: El advenedizo de la red no tiene ningún plan de lanzamiento para OpenFlow y también señaló que es imposible gestionar todos los flujos en un solo dispositivo. Aunque Cisco también piensa lo mismo, creo que se trata de un malentendido de cómo funciona OpenFlow. Es posible utilizar OpenFlow para manejar cada flujo, pero esto no es necesario, es sólo una opción de configuración.
Big Switch Networks: Esta startup lanzada recientemente se centra en soluciones OpenFlow, específicamente en virtualización de redes. No hay detalles en el sitio web de Big Switch, pero supongo que están desarrollando controladores e interruptores.
Si OpenFlow puede tener suficientes clientes, cambiará fundamentalmente la industria de las redes, porque los protocolos de control que utilizamos actualmente (como OSPF o Spanning Tree o DCB) serán reemplazados por controladores de software. Si bien esto conducirá a la mercantilización del hardware, los controladores de software se convertirán en un nuevo componente de la industria de las redes.
...gt;gt;
Pregunta 9: ¿Cómo aprender mejor la estructura de datos? Escribir código de estructura de datos y programar antes de aprender el lenguaje C es la experiencia de la mayoría de los principiantes. De hecho, existen formas de evitarlo.
Piensa más gt; lee más gt; escribe más gt; usa más el teclado
Es importante desarrollar buenos hábitos de programación.
Antes de realizar cualquier trabajo, debe ordenar sus ideas con claridad, consultar la experiencia laboral relevante de otros, analizar sus propias necesidades y poner sus ideas en papel. Primero, utilice la programación de arriba hacia abajo. tu Las funciones de cada función, la entrada y salida, describen claramente el proceso de ejecución interna de cada función y deben estar bien comentadas. Finalmente, codifíquelo paso a paso.
Esto puede evitar eficazmente la mayoría de los errores. Incluso si ocurre un error, es fácil localizar el problema. No sé qué piensa todo el mundo del curso de estructura de datos. ¿Cuántas personas encuentran difícil la estructura de datos? Sé que todavía hay algunos estudiantes que se sienten así. A veces hablo con mis amigos sobre cómo aprender. Después de hablar mucho, él se queja: antes no aprendí bien C ++ y no podía aprender estructuras de datos. Bueno, este no es el caso. La estructura de datos no tiene nada que ver con C ++. Creo que si tienes esa mentalidad y no crees en ti mismo, será imposible aprenderla bien. Es difícil, creo que deberían darle gran importancia a las estructuras de datos y luego sostener un libro sobre estructuras de datos todo el día, ¿no se sentiría cansado? Y debido a que lo encuentro difícil, tiendo a no creer en mí mismo y mi eficiencia de aprendizaje no es muy buena. Personalmente, creo que las estructuras de datos son fáciles de aprender y muy fáciles de aprender. Quizás esto sea un poco insuficiente, pero porque. Creo que es fácil, por supuesto que siento que no hay problema, es fácil de aprender y los resultados son bastante buenos. Todos han aprobado el examen de ingreso a la universidad, por lo que deben conocer la importancia de la mentalidad. Dos mentalidades diferentes tienen efectos completamente diferentes. Después de aprender estructuras de datos durante tanto tiempo, ¿qué estamos aprendiendo exactamente? No sé si lo ha pensado, pero ahora resumamos lo que hemos aprendido. De hecho, hasta ahora solo hemos aprendido algunas estructuras de datos comunes, como árboles binarios, árboles, gráficos y problemas de clasificación. Como se mencionó anteriormente, las tablas lineales y las cadenas son solo algunos conceptos y, por supuesto, también hay un algoritmo KMP muy importante. Luego, en cada estructura de datos, hemos aprendido varios algoritmos de procesamiento. Aprender estructuras de datos significa dominar estas docenas de algoritmos, qué simple es. En cuanto a cómo dominar cada algoritmo, creo que lo importante es leer más libros. Si realmente desea aprender bien las estructuras de datos, es mejor que piense en el problema usted mismo, no crea que no podrá hacerlo después de pensarlo por un tiempo y luego pregunte a otras personas. De hecho, la tarea dada por el profesor Zhang se basa en nuestro nivel. Creo absolutamente que podemos descubrir el algoritmo por nuestra cuenta. Aunque puede llevar mucho tiempo, definitivamente aprenderemos más que preguntándole a otras personas. Por supuesto, no estoy diciendo que no debas preguntarles a tus compañeros de clase. A veces simplemente no puedes entenderlo y lo entenderás tan pronto como les preguntes a los demás. Por supuesto, preguntar a los demás no debería significar solo eso. Conozco el algoritmo. También deberías pensar en cómo pensar para obtener el algoritmo. De esta manera, tu nivel mejorará mucho.
Muchos estudiantes de informática tienen dolor de cabeza con el curso de estructura de datos que se ofrece en el segundo año de la universidad. Veo que todos siempre hablan de la importancia de la estructura de datos, pero nunca pueden encontrar una manera adecuada de hacerlo. Aprendalo. Lo siguiente es que me gustaría compartir con ustedes algunas de mis experiencias en el aprendizaje y la aplicación de estructuras de datos durante el último año. Todo el contenido proviene de las propias experiencias del autor y espero que sirva de guía para todos en el aprendizaje de estructuras de datos. . 1 ¿Qué es una estructura de datos? Desde un punto de vista literal, una estructura de datos consta de dos partes: datos y estructura. De esta manera, es fácil conectar que la esencia de la estructura de datos es un tipo de conocimiento sobre la estructura de datos. Para agregar otro punto de conocimiento, la naturaleza de la estructura de datos está estrechamente relacionada con las matemáticas discretas. Las matemáticas discretas se ocupan de datos discretos (no continuos). Desde la perspectiva de la estructura de datos, también pueden entenderse como una estructura de datos no continua.
2 Estructura de datos y lenguaje de programación No existe conexión entre la estructura de datos y el lenguaje de programación en sí. La única relación es el uso del lenguaje de programación para describir la estructura de datos. Debido a que la estructura de datos es un tipo de datos abstractos, se puede implementar en la computadora mediante un lenguaje de programación. Los lenguajes comúnmente utilizados para describir estructuras de datos en los cursos de estructura de datos en las universidades incluyen el lenguaje de programación C, el lenguaje de programación C y el lenguaje de programación JAVA. Los estudiantes a quienes les gustan otros lenguajes pueden aprender completamente las estructuras de datos y usar su propio lenguaje de programación familiar. para completar la descripción programada solía...gt;gt;
Pregunta 10: La definición de estructura de datos escrita en lenguaje C es un compuesto de dos declaraciones.
Primero, typedef significa redefinición del tipo de datos
significa redefinir el tipo de estructura struct {elementype data; struct node *next;} a node
Puedes hacerlo más tarde Use nodo para representar el tipo de estructura {elementtype data; struct node *next;}
Debería entenderse mejor si lo escribe por separado
struct node
{
p>
datos de tipo de elemento; arc/tipo de elemento representa un tipo de datos, que puede ser int/char, etc.
struct node *next; , utilizado para apuntar al siguiente nodo en la estructura de la lista vinculada
};
typedef struct node node; Redefina el tipo de nodo de estructura como nodo
Después de la redefinición. , la definición de datos struct node mynode; es equivalente a node mynode;