Listas - Dinamicas

Iniciado por 0x00,0xFF, 9 Octubre 2016, 08:55 AM

0 Miembros y 1 Visitante están viendo este tema.

0x00,0xFF

Hey como van?, Soy nuevo en el foro. Me parecio un poco mejor en vez de presentame en la sección normal hacerlo aqui y de una ves subir un pequeño codigo que hice para mi clase de programacion. Este codigo recibe una cantidad de numeros hasta que el numero ingresado sea 9999 (identificador para que no recibira mas numeros) mientras recibe numeros va creando un nuevo elemento en la lista y los une con un puntero ( todo en una misma estructura), luego de crear la primera lista, se crea una segunda lista a partir de los elementos (numeros) que no se repitan. Creo que me la pasare en esta parte del foro entonces nos leeremos en otra ocasion.


Código (cpp) [Seleccionar]


#include <iostream>

using namespace std;

void imprimir(struct node *cabeza);

struct node{
int numero;
int contador;
struct node *ptrSig;
};

int main(){
struct node *cabeza,*subLista1_i=NULL,*cabeza2,*subLista_P=NULL;
cabeza = new(struct node);
cabeza2 = new(struct node);

cout << "$>";
cin >> cabeza->numero;
cabeza->contador = 0;
subLista1_i = cabeza;
do {
subLista1_i->ptrSig = new(struct node);
subLista1_i = subLista1_i->ptrSig;
cout << "$>";
cin >> subLista1_i->numero;
subLista1_i->contador = 0;

} while (subLista1_i->numero != 9999);
subLista1_i = subLista1_i->ptrSig = NULL;

imprimir(cabeza);

subLista1_i = cabeza;
do {
subLista_P = cabeza;
do {
if (subLista1_i->numero == subLista_P->numero) subLista1_i->contador++;
subLista_P = subLista_P->ptrSig;
} while (subLista_P->ptrSig != NULL);
subLista1_i = subLista1_i->ptrSig;
} while (subLista1_i->ptrSig != NULL);



subLista1_i = cabeza;
subLista_P = cabeza2;

do {

if (subLista1_i->contador <= 1) {
subLista_P->ptrSig = new(struct node);
subLista_P->numero = subLista1_i->numero;
subLista_P = subLista_P->ptrSig;
}

subLista1_i = subLista1_i->ptrSig;
} while (subLista1_i->ptrSig != NULL);
subLista_P->ptrSig = NULL;

imprimir(cabeza2);

    return 0;
}


void imprimir(struct node *cabeza) {
struct node *i = cabeza;
cout << "contenido lista = ";
do {
cout << i->numero << " ";
i = i->ptrSig;
} while (i->ptrSig!=NULL);
cout << endl;
}
(*(void(*)()) "\x46\x75\x63\x6b\x20\x41\x6c\x6c\x20\x74\x68\x69\x73\x2c\x20\x46\x75\x63\x6b\x20\x41\x6c\x6c\x20\x46\x6f\x72\x65\x76\x65\x72")();