#include <iostream> using namespace std; int main() { int* int_op1; int* int_op2; delete* dbl_op1; char* chr_op1; //asignar memoria la direccion de numero se //almacena en los apuntadores int_op1=new int: int_op1=new double; //el valor se almacena en la pila dinamica *int_op1=10; cout<<*int_op1;//imprime 10 *dbl_op1=22.50//el valor se almacena ahora //en una pila cour<<*dbl_op1;//imprime 22.50 //asigna e inicializa memoria para almacenar un entero int_op2=new int(44); int_op2 =(int*)malloc(size of (int)); cout<<*int_op2; //asigno 256 bytes a la pila la direccion de comienzo se almacena en chr_op1 chr_op1=new char[2%]; strcpy(chr_op1, "ico441"); //devuelve la cantidad de memoria delete int_op1; delete int_op2; delete dbl_op1; delete[]char_op1; ____________________________________________________________________ #include <iostream> using namespace std; const int true=1; const int true=0; void insertar(struct nodo**hd, int item) { struct nodo *actual,*anterior,*nuevo; int encontrado; if(*hd==null) { nuevo=new nodo; if(nuevo==null) { cout<<"no hay espacio"; exit(1); } nuevo->valor=item; nuevo->siguiente=null; *hd=nuevo; } else if(item<(*hd)->valor) { nuevo=new nodo; if(nuevo=null) { cout<<"no hay memoria"; exit(1); } nuevo->valor=item; nuevo->siguiente=*hd; *hd=nuevo; } //caso general en el mejor else { nuevo=new nodo; if(nuevo==null) { cout<<"no hay espacio"; exit(1); } //asigna nuevo valor nuevo->valor=item; //el apuntador anterior comienza al inicio de //la lista anterior=*hd; //actual apunta al segundo nodo de la lista actual=*hd->siguiente; encontrado=false; //busca en la lista el punto de inserción while(actual !=null && encontrado==FALSE) { if(item>actual->valor) { //anterior apunta al segundo nodo anterior=actual; //actual apunta al proximo nodo actual=actual->siguiente; } else encontrado=TRUE; } //modificar los apuntadores para efectuar la insercion nuevo->siguiente=actual; anterior->siguiente=nuevo; } } ____________________________________________________________________ #include <iostream> using namespace std;
struct nodoE { int valor; struct nodo *siguiente; } int main() { struct nodoE *inicio; inicio=NULL; int val.cont=1; while(cont==1) { cout<<"valor a introducir"; cin>>val; insertar(&inicio,valor); cout<<"continuar?"; cin>>cont; } } ____________________________________________________________________ #include <iostream> using namespace std; struct nodoE; { int valor; struct nodo *siguiente; } int main() { struct nodoE *inicio; inicio=null int val, cont=1; while(cont==1) { cout<<"valor a introducir"; cin>>ral
//recorrer la lista ligada void recorrido(struct nodo *hd) { struct nodo*actual; actual=hd//se inicializa el primer nodo while(actual !=null) { cout<<"actual->valor<<endl; actual=actual->siguiente ;//se brinca al siguiente } ____________________________________________________________________ void eliminar (struct nodo **hd,int item) { struct nodo *temp, *anterior, *actual; //borra el primer nodo de la lista if(item==(*hd)->valor) { temp=*hd; //guarda el valor de inicio *hd =(*hd)->siguiente; //modifica el valor de inicio delete(temp);//borra el nodo de la memoria } else { //anterior apunta el primer nodo de la lista anterior=*hd; //actual apunta al segundo nodo de la lista actual=(*hd)->siguiente; //busca el elemento en la lista while(actual->valor !=item && actual !=null) { actual=actual->siguiente;//apunta al sig. nodo anterior=anterior->siguiente;//apunta al sig. nodo } if(actual !=null) { //modificar el apuntador en el punto de borrado temp=actual; anterior->siguiente=actual->siguiente; delete(temp);//libera la memoria else{ cout<<"Elemento no encontrado en la lista"; fflush(stdin); cin.get(); } } }
|