C/Visual C - Ayuda! Impresion de datos en una lista con clase

 
Vista:

Ayuda! Impresion de datos en una lista con clase

Publicado por Juan David (1 intervención) el 16/08/2009 21:05:19
Hola espero y me puedan ayudar solo quisiera saber como le puedo hacer para que mi Lista imprima los datos que estoy ingresando, por favor, ademas tambien quiero implementar el metodo de conectar al anterior.a.. por fas le a;ado el codigo...

#include "lista.cpp"
#include "manzana.cpp"
#define vacio NULL
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

void main(){
Lista* c;
Manzana* m;
int i,pos,opc;
c = new Lista();
do
{
system ("cls");//el clrscr no me corria...
printf("que deseas hacer: 1.-Insertar nodo 2.-Eliminar nodo 3.-Salir ");
scanf("%d",&opc);

switch(opc)
{
case 1:
printf("dame posicion donde quieres insertar el nuevo si la posicion no existe se agregara al final:");
scanf("%d",&pos);
printf("dame un numero");
scanf("%d",&m);
c->inserta(m,pos);
break;

case 2:
printf("dame posicion a eliminar:");
scanf("%d",&pos);
m=c->elimina(pos);
i = m->queColorEres();
printf("%d ",i);
delete m;

case 3:
printf("")


}
}while(opc!=3);

getch();
}

#include <stdio.h>
#include "nodo.cpp"
#include "manzana.cpp"
#define vacio NULL

class Lista{
private:
int tamanio;
Nodo* primero;
Nodo* ultimo;
Nodo* penul;
Nodo* aux;
int estaVacia();
void conectaAPrimero(Nodo* pN);
void conectaAAnterior(Nodo* pN);
void conectaAUltimo(Nodo* pN);

public:
Lista();
void inserta(Manzana* pE,int pPos);
Manzana* elimina(int pPos);
Nodo* colocate(int pPos);
};

Lista::Lista(){
tamanio = 0;
primero = vacio;
ultimo = vacio;
penul= vacio;
aux=vacio;
}

void Lista::inserta(Manzana* pE,int pPos){
fflush(stdin);
Nodo* n;
Nodo* on;
n = new Nodo();
n->carga(pE);

if (estaVacia()){
conectaAPrimero(n);
conectaAUltimo(n);
}else
{
if(pPos<=tamanio)
{
if(pPos!=1)
{
on=colocate(pPos);
aux=on->sig;
on->sig=n;
n->sig=aux;
tamanio++;
}else
{
aux=primero;
primero=n;
primero->sig=aux;
tamanio++;
}

//conectaAUltimo(n);
}else
{
conectaAUltimo(n);
}
}
}

Manzana* Lista::elimina(int pPos){
Nodo* n;
Nodo* on;
Manzana* m;
if (!estaVacia()){
on=colocate(pPos);
if(pPos==1)
{
m=on->dameLaCarga();
aux=on->sig;
primero=aux;
delete on;
tamanio--;
return m;
}else
{

aux=on;
on=aux->sig;
m=on->dameLaCarga();
aux->sig=on->sig;
delete on;
tamanio--;

return m;
}

}
return vacio;
}

int Lista::estaVacia(){
return tamanio == 0;
}

void Lista::conectaAPrimero(Nodo* pN){
primero = pN;
}

void conectaAAnterior(Nodo* pN){
->


}


void Lista::conectaAUltimo(Nodo* pN){
if (!estaVacia()){
ultimo->sig = pN;
}
ultimo = pN;
tamanio ++;
}

Nodo* Lista::colocate(int pPos){
Nodo *n;
if(pPos<=tamanio)
{
n=primero;
for(int i=1; i<pPos-1;i++)
{
n=n->sig;
}

}
return n;

Mis otros enlaces, como el nodo y la manzana, si los necesitan me avisan pero con que me ayuden con el Algoritmo es suficiente, claro que el codigo estaria mejor, pero pues no hay que ser parasitos, jajajajaja.....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder