Você está na página 1de 5

#include #include #include #include

<conio.h> <stdio.h> <stdlib.h> <iostream.h>

void InsertarInicioLista(struct Nodo **cab); //void InsertarFinalLista(struct Nodo **cab); struct Nodo { char prioridad[15]; struct Nodo *Sig; }*cab=NULL,*N=NULL; void main() { int opc; do { clrscr(); printf("\n\t\t\tEJERCICIO DE PILA" ); printf("\n\t1.INSERTAR"); printf("\n\t2.EXTRAER"); printf("\n\t3.VISUALIZAR"); printf("\n\t4.SALIR"); printf("\nINGRESE LA OPCION A DESARROLLAR:\t"); do scanf("%d", &opc); while(opc<1 || opc>4); switch(opc) { case 1:InsertarInicioLista( &cab); break; // case 2: extraer(); break; // case 3: visualizar(); break; } } while(opc!=4); getch(); }

int IsListaVacia(struct Nodo *cab) {return(cab==NULL);} /* if(cab=NULL) return 1; else return 0; */ /* int GetNumerosNodos(struct Nodo *cab) { struct Nodo *Aux; int contador =0; if(IsListaVacia(cab)==1) //if( (IsListaVacia(cab))==1 ) return 0; else { for(Aux=cab;Aux->Sig!=NULL;Aux=Aux->Sig) {contador++;}

return(contador); } } */ /* CREAR NODO */ struct Nodo *CrearNodo() { struct Nodo *N; N=(struct Nodo*) malloc(sizeof(struct Nodo)); N=new struct nodo; if(N==NULL) cout<<"Memoria LLena"; return N; } /* struct Nodo *GetNodoPosicion(struct Nodo *cab,int pos) { struct Nodo *Aux; int cont; if(pos<=0&&pos>GetNumerosNodos(&cab)) { cout <<"Posicion Incorrecta"; return(Aux); } else { for(Aux=cab;Aux!=NULL;Aux=Aux->Sig) { cont++; if(cont==pos) return(Aux); } } } */ /* *****************INSERTAR NODO EN UNA LISTA ******************************* * / /* INSETAR AL INICIO DE UNA LISTA */ void InsertarInicioLista(struct Nodo **cab) { struct Nodo *N; N=CrearNodo(); printf("\nINGRESE UNA PRIORIDAD:"); fflush(stdin); gets(N->prioridad); if(!(N==NULL)) { if(!( IsListaVacia(*cab))) N->Sig=*cab; *cab=N; } /* if(IsListaVacia(cab)) //if(IsListaVacia(Cab)==1) Cab=N;

else { n->Sig=cab; cab=N; } }*/ struct Nodo *Aux; for( Aux=*cab; Aux!=NULL; Aux=Aux->Sig) { printf("\t %s ", Aux->prioridad); getch(); } } void InsertarFinalLista(struct Nodo **cab) { struct Nodo *N,*Aux; N=CrearNodo(); if(!N==NULL) { if(IsListaVacia(*cab)) *cab=N; else { for(Aux=*cab;Aux->Sig!=NULL;Aux=Aux->Sig){} Aux->Sig=N; } } } /* void InsertarNodoPosicionN(struct Nodo *cab, char prioridad,int pos) { struct Nodo *N,*Aux; if(pos<0 || pos>GetNumerosNodos(cab)+1) { cout<<"posicion Invalida"; } else if(pos==1) { InsertarInicioLista(&cab); } else if(pos==GetNumerosNodos(cab)+1) { InsertarFinalLista(&cab); } else { N=CrearNodo(); if(!(N==NULL)) { Aux=GetNodoPosicion(&cab,pos-1); N->Sig=Aux->Sig;

Aux->Sig=N; *N->prioridad=prioridad; } } } */

/* **************************eliminar nodos ******************************** */ /* void EliminarInicioLista(struct Nodo *cab) { struct Nodo *Aux; if(IsListaVacia(cab)) cout<<"No se puede eliminar, Lista Vacia"; else { Aux=cab; cab=Aux->Sig; Aux->Sig=NULL; free(Aux); } } void EliminarFinalLista(struc Nodo *Cab) { struct Nodo *Aux; if(IsListaVacia(Cab)) cout<<"No se puede eliminar lista vacia"; else { if(GetNumeroNodos(Cab)==1) { free(Cab); Cab=NULL; } else { Aux=&GetNodoPosicion(Cab,GetNumerosNodos(Cab)-1); free(Aux->Sig); Aux->Sig=NULL; } } } void EliminarNodoPosicionN(struct Nodo *Cab,int pos) { struct Nodo *Aux,*B; if((pos<1)||(pos>GetNumeroNodos(Cab))) {cout<<"Posicion invalida";} else if(pos==1) {EliminarInicioLista(Cab);} else

if(pos==GetNumerosNodos(Cab)+1) {EliminarFinalLista(Cab);} else { Aux=GetNodoPosicionN(Cab,pos-1); B=GetNodoPosicionN(Cab,pos); Aux->Sig=B->Sig; B->Sig=NULL; free(B); } } */

Você também pode gostar