Programmierung: Verknüpfte Listen - ein einfaches Beispiel für das Hinzufügen einer Liste

Verlinkte Listen

Summe einer verlinkten Liste

Erstellen Sie ein Programm, mit dem Sie Anfang, Ende und Position eingeben und die Summe der Liste berechnen können.

#include <iostream.h>
#include <conio.h>
#include
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<nro<<endl;
    lista=lista->sgte;
    }
    cout<<endl;
}

Zeitplan: Verlinkte Listen

Zeitplan: Verlinkte Listen

Weiter mit den Linked Lists teile ich den folgenden Beitrag: Tausche zwei Listen in einer dritten Liste und berechne die Subtraktion