Tarea De Algoritmos

Páginas: 9 (2028 palabras) Publicado: 11 de junio de 2012
“Año de la Integración Nacional y el Reconocimiento de Nuestra Diversidad”
UNIVERSIDAD Continental
Calidad que se acredita internacionalmente

Tarea N° 2
Listas circular y doblemente enlazada

CURSO:
Algoritmia y Estructura De Datos
ALUMNO:
------------------------------------------------------------------------------------------------
SEMESTRE:
TERCERO
DOCENTE:
ING. Rojas Moreno Carol Roxana

HUANCAYO- PERU

Lista circular
//listas circulares
#include <iostream>
#include <string>
#define MAX 100
using namespace std;

struct nodo
{int dato;
nodo *sig;
};

typedef nodo *pnodo; 

class lista
{ private:
pnodo pL;
public:
lista();
~lista();
void insertar_comienzo();
void insertar_final();
void insertar_despues();
void eliminar_inicio();
void eliminar_final();
void buscar(); 
pnodo buscar_despues(int x); 
void buscar_anterior(); 
void imprimir();
system("pause");
};

lista::lista()

pL = pL;
}lista::~lista()
{ pnodo p,q;
if ( pL != NULL ) 
{ p = pL; 
while ( p != NULL ) 
{ q = (*p).sig; 
delete p; 
p = q; } 
pL=p; 
p=pL;
}
}

void lista::insertar_comienzo()

pnodo nuevo; 
int valor; 
cout<<" INGRESE DATO: "; cin>>valor; 
nuevo = new nodo; 
(*nuevo).dato = valor; 
(*nuevo).sig = pL; 
pL = nuevo; 
nuevo = pL; 
}

void lista::insertar_final()
{ pnodonuevo,aux; 
int valor; 
nuevo = new nodo; 
cout <<"INGRESE DATO: "; cin>>valor;
(*nuevo).dato = valor; 
(*nuevo).sig = NULL;
if ( pL == NULL ) 
pL = nuevo; 
else 
{ aux = pL; 
while ( (*aux).sig != NULL ) 
aux = (*aux).sig; 
(*aux).sig = nuevo;
}


void lista::insertar_despues() 
{ pnodo nuevo,r,temp; 
int num; 
nuevo=new nodo; 
cout<<" INGRESE DATO: ";cin>>(*nuevo).dato; 
cout<<" INGRESE DESPUES DEL ALUMNO CON CODIGO "; 
r=lista::buscar_despues(num); 
if(r==NULL) 
cout<<" LISTA VACIA, NO SE ENCONTRO NADA "; 
else 
{ temp=(*r).sig; 
if(temp!=NULL) 
{ (*r).sig=nuevo; 
(*nuevo).sig=pL; 
}
else //delo contrario
{ (*nuevo).sig=pL;
(*r).sig=nuevo; 


}
}

void lista::buscar()
{ pnodo pos; 
int valor, ban=0; cout<<"Ingrese dato:"; cin>>valor; 
if ( pL == NULL ) 
{ cout<<"LISTA VACIA"; 
pos=pL; 
}
else 
{ pos = pL; 
while ( pos != NULL) 
{ if((*pos).dato != valor) 
{ pos = (*pos).sig; 
ban=1; 
}
else 
{ ban=0; 
break; 
}

if(ban==0) 
{ cout<<" ENCONTRADO "; 
}
else 
{ cout<<" NO ENCONTRADO "; 
}
}
}

pnodo lista::buscar_despues(int valor) 
{ pnodopos; 
int ban=0; 
if ( pL == NULL ) 
{ cout<<" LISTA VACIA "; 
pos=pL; 
}
else 
{ pos = pL; 
while ( pos != NULL) 
{ if((*pos).dato != valor) 
{ pos = (*pos).sig; 
ban=1; 
}

else 
{ ban=0; 
break; 
}

if(ban==0) 
{ cout<<"ENCONTRADO"; } 
else 
{ cout<<"NO ENCONTRADO"; }
}
return pos; 
}

void lista::buscar_anterior()
{ pnodo pos,p; 
int valor,ban=0;cout<<"Ingrese dato: "; cin>>valor; 
pos = pL; 
p = pL; 

while(p!=pL) 
{ if ( (*p).dato != valor) 
{ ban=1; 
pos = p; 
p = (*p).sig; 
}
else 
{ ban=0; 
break; 
}
}
if(ban==0) 
{ cout<<"ENCONTRADO: "<<(*pos).dato ; 
}
else 
{ cout<<"NO ENCONTRADO"; } 
}

void lista::eliminar_inicio()
{ pnodo aux; 
if(pL==NULL)
{ cout<<"lista vacia"; } else 
{ aux=pL; 
if((*pL).sig==pL) 
{ pL=NULL; } 
else 
{ pL=(*pL).sig; } 
cout<<"EL ELEMENTO SE ELIMINO "<<(*aux).dato; 
delete aux; 
}
}

void lista::eliminar_final()
{ pnodo aux=pL, temp; 
if(pL==NULL) 
{ cout<<"LISTA VACIA "; }
else 
{ if((*pL).sig==pL) 
{ pL=pL; }
else 
{ while((*aux).sig!=pL) 
{ temp=aux; 
aux=(*aux).sig; 
}
(*temp).sig=pL; 
}...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Algoritmos Tarea
  • Tarea Algoritmos
  • Tarea Algoritmos De Programacion
  • tarea de algoritmos computacionales
  • ALGORITMO tarea 1
  • ALGORITMOS TAREA 1
  • Tarea N 1 ALGORITMOS
  • tarea 5 y 6 algoritmos sin responder

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS