elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: Ayuda para programacion en c en: 16 Septiembre 2019, 16:12 pm
se me habia pasado poner el codigo no lo estaba poniendo para que me lo hicieran ya resolvi mi duda muchas gracias..

#include <stdlib.h>
#include <stdio.h>
 int opcion=0,nvalor=0,borrar=0,seguir=0,seguir2=0,acum=0,i=0,j=0;
typedef struct _nodo
{
   int valor;
   struct _nodo *siguiente;
}
tipoNodo;
typedef tipoNodo *pNodo;
typedef tipoNodo *Lista;


void Insertar(Lista *l, int v);
void Borrar(Lista *l, int v);
int ListaVacia(Lista l);
void BorrarLista(Lista *);
void MostrarLista(Lista l);
void PromedioLista(Lista I);

int main()
{
   Lista lista = NULL;
   pNodo p;
   do
   {
      printf("\n   1)Insertar elementos. 2)Mostrar elementos. 3)Borrar elementos . \n4) Borrar toda la lista. 5)Promedio \n");scanf("%d",&opcion);
      if(opcion==1)
      {
         do
         {
            printf("\n Introduzca el valor de la lista:  ");scanf("%d",&nvalor);
            Insertar(&lista, nvalor);
            printf("\n desea introducir otro valor  en la lista: (1) Si (2) No:  ");scanf("%d",&seguir);
         }
         while(seguir==1);
      }
      else
      {
         if(opcion==2)
         {
            printf("\n Mostrar la lista\n");
            MostrarLista(lista);
         }
         else
         {
            if(opcion==3)
            {
               do
               {
                  printf("\n Valor de la lista a borrar:  ");scanf("%d",&borrar);
                  Borrar(&lista, borrar);
                  MostrarLista(lista);
                  printf("\n Desea borrar otro elemento de la lista : (1) Si (2) No:  ");scanf("%d",&seguir);
               }
               while(seguir==1);
            }
            else
            {
               if(opcion==4)
               {
                  printf("\n Borrar toda la Lista :");
                  BorrarLista(&lista);
                  MostrarLista(lista);
               }
            else
            {   
               if (opcion ==5)
               {
                  printf ("\nPromedio\n");
                  PromedioLista(lista);
               }
            }
         }
   }
}
      printf("\n Desea realizar otra operacion: (1) Si  (2) No  ");scanf("%d", &seguir2);
      
   }while(seguir2==1);
   
   /*Insertar(&lista, 20);
   Insertar(&lista, 10);
   Insertar(&lista, 40);
   Insertar(&lista, 30);*/
   /*MostrarLista(lista);*/
   /*Borrar(&lista, 10);
   Borrar(&lista, 15);
   Borrar(&lista, 45);
   Borrar(&lista, 30);
   Borrar(&lista, 40);
   MostrarLista(lista);*/
   /*BorrarLista(&lista);
   getchar();*/
   return 0;
}
void Insertar(Lista *lista, int v)
{
   pNodo nuevo, anterior;

   nuevo = (pNodo)malloc (sizeof(tipoNodo));
   nuevo->valor = v;
 
   if(ListaVacia(*lista) || (*lista)->valor > v)
   {
 
      nuevo->siguiente = *lista;
      *lista = nuevo;
        acum= acum+v;
   }
   else
   {
      anterior = *lista;
      while(anterior->siguiente && anterior->siguiente->valor <= v)
          anterior = anterior->siguiente;
      nuevo->siguiente = anterior->siguiente;
      anterior->siguiente = nuevo;
   }
      i=i+acum;
      j++;

}

void Borrar(Lista *lista, int v)
{
   pNodo anterior, nodo;
   nodo = *lista;
   anterior = NULL;
   while(nodo && nodo->valor < v)
   {
       anterior = nodo;
       nodo = nodo->siguiente;
   }
   if(!nodo || nodo->valor != v) return;
   else {
       if(!anterior)
          *lista = nodo->siguiente;
       else
          anterior->siguiente = nodo->siguiente;
       free(nodo);
   }
}

int ListaVacia(Lista lista)
{
   return (lista == NULL);
}

void BorrarLista(Lista *lista)
{
   pNodo nodo;
   while(*lista) {
       nodo = *lista;
       *lista = nodo->siguiente;
       free(nodo);
   }
}

void MostrarLista(Lista lista)
{
   pNodo nodo = lista;
   if(ListaVacia(lista)) printf("   Lista vacía\n");
   else
   {
       while(nodo)
       {
          printf("%d -> ", nodo->valor);
          nodo = nodo->siguiente;
     }
     printf("\n");
   }
}

void PromedioLista (Lista lista)
{
   float prom=0.0;
   pNodo nodo = lista;
      if(ListaVacia(lista)) printf("   Lista vacía\n");
      else
      {
         prom = (acum/j);
      }
      printf ("\nPROMEDIO:\n %.2f\n", prom);
      }
2  Programación / Programación C/C++ / Ayuda para programacion en c en: 16 Septiembre 2019, 14:40 pm
Realice un programa en donde pueda realizar un menú que permita
a. insertar elementos a una lista enlazada simple
b. borrar elementos a una lista enlazada simple
c. borrar completamente la lista enlazada simple
d. mostrar los elementos de una lista enlazada simple
e. Calcular el promedio de los valores que se le insertaron a la lista enlazada simple
f. Que indique el valor menor y mayor de la lista enlazada simple
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines