Ir al contenido principal

Programacion: Listas enlazadas - ejemplo sencillo de sumar una lista






1.- Hacer un programa que permita ingresar al inicio, al final, y en posición y permita calcular la suma de la lista.

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
struct nodo{
            int nro;
            struct nodo *sgte;
};
typedef struct nodo *Tlista;
void insertarinicio(Tlista &,int);
void insertarfinal(Tlista &,int);
void insertaenpos(Tlista &,int,int);
void imprimir(Tlista);
int suma(Tlista &);

void main()
{
 Tlista lista= NULL;
 int opc,valor,pos;
 do{
   cout<<"1. Insertar al Inicio"<<endl;
   cout<<"2. Insertar al final"<<endl;
   cout<<"3. Insertar en posicion"<<endl;
   cout<<"4. Suma de la lista"<<endl;
   cout<<"5. Lista"<<endl;
   cout<<"6. Salir"<<endl;
   cout<<"Ingrese una opcion:";
   cin>>opc;
 switch(opc)
 {
  case 1:{clrscr();
         cout<<"Valor a insertar al inicio:";
         cin>>valor;
         cout<<endl;
         insertarinicio(lista,valor);
         break;
         }
  case 2: {clrscr();
         cout<<"Valor a insertar al final:";
         cin>>valor;
         cout<<endl;
         insertarfinal(lista,valor);
         break;
         }
  case 3: {clrscr();
         cout<<"Valor a insertar en posicion:";
         cin>>valor;
         cout<<"Posicion:";
         cin>>pos;
         insertaenpos(lista,valor,pos);
         cout<<endl;
         break;
         }
  case 4: {clrscr();
         cout<<"La suma de la lista es:"<<suma(lista);
         cout<<endl<<endl;
         break;
         }
  case 5:{clrscr();
         cout<<endl<<"Listado"<<endl;
         imprimir(lista);
         break;
         }
 }
 } while(opc!=6);
 }

 void insertarinicio(Tlista &lista, int valor)
 { Tlista q;
   q = new(struct nodo);
   q->nro=valor;
   q->sgte=lista;
   lista=q;
 }
 void insertarfinal(Tlista &lista,int valor)
 {Tlista t,q;
  q=new(struct nodo);
  q->nro=valor;
  q->sgte=NULL;
  if(lista==NULL)
  lista=q;
  else
  {
  t=lista;
  while(t->sgte!=NULL)
  t=t->sgte;
  t->sgte=q;
  }
 }
 void insertaenpos(Tlista &lista,int valor, int pos)
 {Tlista q,t;
  int i;
  q=new(struct nodo);
  q->nro=valor;
  if(pos==1)
  {q->sgte=lista;
   lista=q;
  }
  else
  {t=lista;
  for(i=1;t!=NULL;i++)
  {
   if(i==pos-1)
   {q->sgte=t->sgte;
    t->sgte=q;
    return;
    }
    t=t->sgte;
   }
  }
  cout<<"posicion equivocada"<<endl;
 }
 int suma(Tlista &lista)
 {
 int s=0;
 while(lista!=NULL)
 {s=s+lista->nro;
 lista=lista->sgte;
 }
 return s;
}

 void imprimir(Tlista lista)
 {  while(lista!=NULL)
    {cout<<lista->nro<<endl;
    lista=lista->sgte;
    }
    cout<<endl;
}

Comentarios

Entradas más populares de este blog

Lenguaje de Programacion en Java: Ecuación de primer grado

public class Main {     public static void main(String[] args) {         float x,a,e;                   Scanner teclado = new Scanner(System.in);         System.out.println("Coeficiente de X:");         x=teclado.nextInt();         System.out.println("Término independiente:");         a=teclado.nextInt();         if(a==0)           System.out.println("No es una ecuación de primer grado");           else         {              e=-a/x;              System.out.println("La raíz es=" +e);         }                                     } ...

Programacion: Arbol binario - Programacion en c++

1.- Hacer un programa que permita buscar un elemento, el elemento mayor, el elemento menor y el menor de los mayores de un árbol binario. #include <iostream.h> #include <conio.h> struct nodo     {      int valor;      struct nodo* izq;      struct nodo* der;     }; typedef struct nodo *ABB; void inserta(ABB& ,int); void preorden(ABB); void postorden(ABB); void enorden(ABB); void verarbol(ABB,int); int buscar(ABB,int); int buscarmayor(ABB); int buscarmenor(ABB); void podar(ABB&,int); void main() { ABB arbol=NULL; ABB subarbol=NULL; int n,x,opc,a;   do     {      cout<<"menu principal"<<endl;      cout<<"1.ingresar elementos"<<endl;      cout<<"2.pre orden"<<endl;      cout<<"3.mostrar hojas"<...

Programacion: Arreglos con estructuras - ordenamientos

1.- Se pide realizar un ordenamiento de artículos, para ello se debe ingresar n artículos y ordenarlos por su monto de inversión. struct articulo {char codigo[10];  char producto[20];  float preciocompra;  float monto;  int cantidad;  }  #include<iostream.h> #include<string.h> #include<conio.h> #define MAX 50 struct articulo {char codigo[10];  char producto[20];  float preciocompra;  float monto;  int cantidad;  };  void leer(int, struct articulo[]);  void montodeinversion(int, struct articulo[]);  void ordenmonto(int, struct articulo[]);  void listado(int, struct articulo[]);  void main()  {int n;   struct articulo Art[MAX];   cout<<"Cantidad de articulos que desea poner:";   cin>>n;   leer(n,Art);   montodeinversion(n,Art);   ordenmonto(n,Art);   cout<<"productos ordenados por su cantidad de mont...