Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - nikko621

#1
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 C/C++ / Ayuda para programacion en c
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