Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
pNodo nodo;
Insertar(&lista, 10);
Insertar(&lista, 40);
Insertar(&lista, 30);
Insertar(&lista, 20);
Insertar(&lista, 50);
MostrarLista(lista);
Borrar(&lista, 30);
Borrar(&lista, 50);
MostrarLista(lista);
BorrarLista(&lista);
return 0;
}
nodo = *lista;
do {
printf("%d -> ", nodo->valor);
nodo = nodo->siguiente;
} while(nodo != lista);
printf("\n");
}
#include<string.h>
#include<iostream.h>
#include<stdlib.h>
#include<conio.h>
struct empleado{
int ident;
char ap[20], nom[20],cargo[20];
int sueldo;
};
empleado* insertar_nodo_inicial(void);
void ordenar(empleado*);
void imprime_lista_circ(empleado*);
char a;
cout<<"n";
cout<<"3.Programadores en c++"<<"n";
cout<<"6.imprimir lista"<<"n";
cout<<"7.borrar nodo"<<"n";
cout<<"8.salir"<<"n";
return a;
void main()
int i,c;
char opcion;
empleado *cab=NULL;
while(opcion!='8')
opcion=opciones(cab);
switch(opcion)
case '1':cab=insertar_nodo_inicial();
break;
cin>>c;
insertar_nodos_circular(*&cab,c);
break;
break;
case '4':empleadosmayora(cab);
break;
case '5':sumanomina(cab);
break;
case '6':imprime_lista_circ(cab);
break;
cin>>i;
eliminar_nodo_circ(*&cab, i);
break;
case '8':exit(0);
break;
default:cout<<"fuera de parametro";
//crearnodo
empleado* insertar_nodo_inicial()
empleado *crear;
crear=new empleado;
cout<<"IDENTIFICACION: ";
cin>>crear->ident;
cout<<"APELLIDO: ";
cin>>crear->ap;
cout<<"NOMBRE: ";
cin>>crear->nom;
cout<<"CARGO: ";
cin>>crear->cargo;;
cout<<"SUELDO: ";
cin>>crear->sueldo;
crear->avanc=crear;
return crear;
//insertar nodo
empleado *aux;
empleado *r;
if(cab!=NULL)
r=cab;
aux=new empleado;
r=r->avanc;
if(r==cab)
cout<<"IDENTIFICACION: ";
cin>>aux->ident;
cout<<"APELLIDO: ";
cin>>aux->ap;
cout<<"NOMBRE: ";
cin>>aux->nom;
cout<<"CARGO: ";
cin>>aux->cargo;
cout<<"SUELDO: ";
cin>>aux->sueldo;
aux->avanc=r->avanc;
r->avanc=aux;
r=aux;
else
aux->avanc=r->avanc;
r->avanc=aux;
cout<<"IDENTIFICACION: ";
cin>>aux->ident;
cout<<"APELLIDO: ";
cin>>aux->ap;
cout<<"NOMBRE: ";
cin>>aux->nom;
cout<<"CARGO: ";
cin>>aux->cargo;
cout<<"SUELDO: ";
cin>>aux->sueldo;
else
//prog en c++
int progenc(empleado*cab)
empleado *q;
int cant=0;
q=cab;
if(cab)
if(strcmp(q->cargo,"programadores_en_c++")==0)
cout<<"n";
cant=cant+1;
while(q->avanc!=cab)
if(strcmp(q->cargo,"programadores_en_c++")==0)
cout<<"n";
cant=cant+1;
q=q->avanc;
else
return cant;
getch();
//SUELDO
empleado *p;
p=cab;
if(cab)
{
if(cab->sueldo>2500000)
cout<<"IDENTIFICACION: "<<cab->ident;
cout<<"n";
cout<<"APELLIDO: "<<cab->ap;
cout<<"n";
cout<<"NOMBRE: "<<cab->nom;
cout<<"n";
cout<<"CARGO: "<<cab->cargo;
cout<<"n";
cout<<"SUELDO: "<<cab->sueldo;
cout<<"n";
p=cab->avanc;
while(p!=cab){
cout<<"n";
cout<<"IDENTIFICACION: "<<p->ident;
cout<<"n";
cout<<"APELLIDO: "<<p->ap;
cout<<"n";
cout<<"NOMBRE: "<<p->nom;
cout<<"n";
cout<<"CARGO: "<<p->cargo;
cout<<"n";
cout<<"SUELDO: "<<p->sueldo;
cout<<"n";
p=p->avanc;}
else
getch();
//SUMANOMINA
empleado *q;
int sumnomina=0;
q=cab->avanc;
if(cab)
sumnomina=cab->sueldo+sumnomina;
while(q!=cab)
sumnomina=cab->sueldo+sumnomina;
q=q->avanc;
getch();
}
void imprime_lista_circ(empleado*cab)
empleado *q;
if(cab==NULL)
else
if(cab->avanc==cab)
cout<<"n";
cout<<"n";
cout<<"cedula:"<<cab->ident;
cout<<"n";
cout<<"apellido:"<<cab->ap;
cout<<"n";
cout<<"nombre:"<<cab->nom;
cout<<"n";
cout<<"cargo:"<<cab->cargo;
cout<<"n";
cout<<"sueldo:"<<cab->sueldo;
cout<<"n";
cout<<"n";
else
q=cab;
cout<<"n";
cout<<"n";
cout<<"cedula:"<<cab->ident;
cout<<"n";
cout<<"apellido:"<<cab->ap;
cout<<"n";
cout<<"nombre:"<<cab->nom;
cout<<"n";
cout<<"cargo:"<<cab->cargo;
cout<<"n";
cout<<"sueldo:"<<cab->sueldo;
cout<<"n";
cout<<"n";
q=cab->avanc;
do{
cout<<"cedula:"<<q->ident;
cout<<"n";
cout<<"apellido:"<<q->ap;
cout<<"n";
cout<<"nombre:"<<q->nom;
cout<<"n";
cout<<"cargo:"<<q->cargo;
cout<<"n";
cout<<"sueldo:"<<q->sueldo;
cout<<"n";
cout<<"n";
q=q->avanc;
while(q!=cab);
}
getch();
//ELIMINAR NODO
empleado *q,*r;
q=r=cab;
if(cab==NULL)
else
delete(q);
else
q=q->avanc;
if(cab->avanc==q)
cab->avanc=q->avanc;
delete(q);
else
{
while(r->avanc!=q)
r=r->avanc;
r->avanc=q->avanc;
delete(q);
#include<stdio.h>
#include<stdlib.h>
struct nodo {
int info;
struct nodo *sig;
struct nodo *ant;
};
void liberar()
{
if (raiz != NULL) {
struct nodo *reco = raiz->sig;
struct nodo *bor;
while (reco != raiz)
{
bor = reco;
reco = reco->sig;
free(bor);
}
free(raiz);
}
}
int vacia()
{
if (raiz == NULL)
return 1;
else
return 0;
}
void insertarPrimero(int x)
{
struct nodo *nuevo;
nuevo=malloc(sizeof(struct nodo));
nuevo->info = x;
if (raiz == NULL)
{
nuevo->sig = nuevo;
nuevo->ant = nuevo;
raiz = nuevo;
}
else
{
struct nodo *ultimo = raiz->ant;
nuevo->sig = raiz;
nuevo->ant = ultimo;
raiz->ant = nuevo;
ultimo->sig = nuevo;
raiz = nuevo;
}
}
void insertarUltimo(int x)
{
struct nodo *nuevo;
nuevo=malloc(sizeof(struct nodo));
nuevo->info = x;
if (raiz == NULL)
{
nuevo->sig = nuevo;
nuevo->ant = nuevo;
raiz = nuevo;
}
else
{
struct nodo *ultimo = raiz->ant;
nuevo->sig = raiz;
nuevo->ant = ultimo;
raiz->ant = nuevo;
ultimo->sig = nuevo;
}
}
void imprimir()
{
if (!vacia()) {
struct nodo *reco = raiz;
do {
printf("%i ",reco->info);
reco = reco->sig;
} while (reco != raiz);
printf("\n");
}
}
int cantidad()
{
int cant = 0;
if (!vacia())
{
struct nodo *reco = raiz;
do {
cant++;
reco = reco->sig;
} while (reco != raiz);
}
return cant;
}
int main()
{
insertarPrimero(100);
insertarPrimero(45);
insertarPrimero(12);
insertarPrimero(4);
printf("Luego de insertar 4 nodos al
principio\n");
imprimir();
insertarUltimo(250);
insertarUltimo(7);
printf("Luego de insertar 2 nodos al
final\n");
imprimir();
printf("Cantidad de nodos:%i\n", cantidad());
printf("Luego de borrar el de la primer
posicion:\n");
borrar(1);
imprimir();
printf("Luego de borrar el de la cuarta
posicion:\n");
borrar(4);
imprimir();
liberar();
getch();
return 0;
}