none
Necesito ayuda con un codigo en c sharp RRS feed

  • Pregunta

  • Hola alguien me podria ayudar con un codigo en c sharp, soy novato en la programacion y poco le entiendo, el problema dice lo siguiente:

    "Defina un algoritmo para insertar, si es posible, un elemento antes de otro nodo dado como referencia en una lista ordenada".

    Como empezar?

    porfavor ayudenme!!!

    lunes, 1 de octubre de 2012 1:55

Todas las respuestas

  • hola miren  lo que pasa es que tengo un problema con un código de mi materia de estructura, este código me pide que debo realizar un algoritmo en el cual inserte un elemento en una lista ordenada pero no debe de alterarse el orden de dicha lista.. 

    la verdad tengo la idea mas o menos pero no se como realizarla, no ordeno mis ideas, no se si alguien sea muy amable de darme una ayuda se los agradecería muchisimo. Gracias!!

    lunes, 1 de octubre de 2012 0:58
  • Pues habría que empezar con aclarar el problema pues está pésimamente redactado.  La lista está ordenada pero no dice si el algoritmo debe respetar el orden.  Si el algoritmo debe respetar el orden, ¿para qué ocupo un nodo de referencia?  ¿O se espera que dicho nodo sirva para "desempates" en un algoritmo de inserción/ordenamiento no determinante?  Luego, ¿qué es "elemento" y qué es "nodo"?  Parecen ser lo mismo, pero si es así ¿para qué el uso de términos distintos?  También se me viene a la mente:  ¿Qué tipo de lista es?  Cuando se habla de nodos se suele estar pensando en listas vinculadas o árboles binarios (que son un caso particular de listas vinculadas).  El tipo de lista afecta la forma del algoritmo de inserción.

    Finalmente debo preguntar:  ¿Es esta lista una lista estándar provista por .net?  Porque .net provee listas vinculadas listas para usar, en cuyo caso todo se simplifica.  Supongo entonces que la lista no es ninguna lista de .net, ¿cierto?


    Jose R. MCP
    Code Samples

    lunes, 1 de octubre de 2012 2:42
  • Por lo que veo la tarea le cuesta a más de uno.  Usted es la segunda persona que pregunta por la misma asignación.  O mejor dicho, es la segunda que leo.

    Si revisa http://social.msdn.microsoft.com/Forums/en-US/vsgenerales/thread/791c5f9f-b606-4dea-a27d-5377cab00ca3 verá que al menos el planteamiento de su compañer@ es muy deficiente.  Principalmente quisiera saber el tipo de lista que se usa porque en .net ya hay listas de todo tipo y no veo la necesidad de un algoritmo de ordenamiento en .net.  Las listas de .net pueden mantener el orden automáticamente así que para inicia habría que conocer el tipo de lista.


    Jose R. MCP
    Code Samples

    lunes, 1 de octubre de 2012 2:47
  • Pues habría que empezar con aclarar el problema pues está pésimamente redactado.  La lista está ordenada pero no dice si el algoritmo debe respetar el orden.  Si el algoritmo debe respetar el orden, ¿para qué ocupo un nodo de referencia?  ¿O se espera que dicho nodo sirva para "desempates" en un algoritmo de inserción/ordenamiento no determinante?  Luego, ¿qué es "elemento" y qué es "nodo"?  Parecen ser lo mismo, pero si es así ¿para qué el uso de términos distintos?  También se me viene a la mente:  ¿Qué tipo de lista es?  Cuando se habla de nodos se suele estar pensando en listas vinculadas o árboles binarios (que son un caso particular de listas vinculadas).  El tipo de lista afecta la forma del algoritmo de inserción.

    Finalmente debo preguntar:  ¿Es esta lista una lista estándar provista por .net?  Porque .net provee listas vinculadas listas para usar, en cuyo caso todo se simplifica.  Supongo entonces que la lista no es ninguna lista de .net, ¿cierto?


    Jose R. MCP
    Code Samples

    El algoritmo tiene que respetar el orden, la referencia se ocupara para decidir si en un momento dado el elemento (informacion) del nodo deba quedar (dependiendo del orden) al inicio, al final o en su defecto en medio de la "Lista ordenada" (Listas simples).

    • Editado sowblex1 lunes, 1 de octubre de 2012 3:09
    lunes, 1 de octubre de 2012 2:56
  • al parecer es una lista simple, ordenada.

    lunes, 1 de octubre de 2012 3:09
  • hola

    no has evaluado usar una lista genrica para implementar la logica, o sea usar

    List<>, por ejemplo

    List<int> lista = new List<int>();

    es una lista de numeros

    peudes usar el

    lista.Add() o el lista.Insert() si es que quieres agregar al final o en determianda posicion

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    lunes, 1 de octubre de 2012 3:19
  • Pues no me quedó claro qué tipo de lista es.  Una "lista simple" puede ser vinculada o no.  Si no lo es y por lo tanto está basada en bloques de memoria continuos (como un array) entonces el algoritmo de búsqueda de la posición en la cual debe insertarse el nuevo elemento depende de su elección, aunque en términos prácticos lo más común es usar QuickSort.

    Por otro lado si la "lista simple" es una lista vinculada, que supongo lo es por el uso de la palabra "nodo" y la diferencia entre "nodo" y "elemento", entonces QuickSort no es aplicable a menos que se sepa cuál es la mitad de la lista mediante un puntero adicional.  Si dicho puntero no existe, entonces el algoritmo de inserción se reduce a un bucle simple que empieza en la cabeza y compara el nuevo elemento con el elemento actual hasta encontrar uno que sea mayor, en cuyo caso esa es la posición de inserción.


    Jose R. MCP
    Code Samples

    lunes, 1 de octubre de 2012 4:59