Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - 0x00,0xFF

#1
Programación C/C++ / Listas - Dinamicas
9 Octubre 2016, 08:55 AM
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;
}