Listas en C.. un problemita..ayudenme please

aprendiz_une
21 de Julio del 2004
Hola q tal.. bueno yo soy un Estudiante Venezolano que esta cursando 3er semestre de Licensiatura en Computacion y estoy viendo Lenguaje C entonces mi profesor puso este codigo en el pizarron para que lo copiaramos pero me da varios errores como: "Function 'Nueva' should have a prototype" o "Improper use of typedef 'pNodo' .. estoy usando Turbo C++ 3.0 como compilador..porfavor ayudenme que quiero aprender!! necesito saber que tengo que acomodar para que funcione.. gracias..

#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <dos.h>

typedef struct Nodo {
int valor;
struct Nodo *sig;
}tiponodo;

typedef tiponodo *pNodo;
typedef tiponodo *Lista;
int ListaVacia (Lista lista) {
return (lista == NULL);}
void insertar (Lista *lista, int v);
void eliminar (Lista *lista, int v);
void eliminarlista (Lista *lista);
void mostrarlista (Lista *lista);
void main (void){

Lista lista = NULL;
insertar (&lista, 9);
insertar (&lista, 3);
insertar (&lista, 15);
insertar (&lista, 10);
mostrarlista (&lista);
}

Lista lista = NULL;
void insertar (Lista *lista, int v){
pNodo Nuevo;
Lista aux;
Nueva (pNodo) malloc (sizeoff(tiponodo));
Nuevo->valor=v;
if (ListaVacia (*lista)||(*lista)->valor > v){
Nuevo -> sig = *lista;
*lista = Nuevo;
}else{
aux= *lista;
while (aux -> sig != NULL && aux -> sig -> valor > v){
aux = aux -> sig;
}
nuevo -> sig = aux -> sig;
aux -> sig = nuevo;
}
}


aprendiz_une
21 de Julio del 2004
Bueno yo mismo buscando q hacer, logre solucionar varios errores pero aun me quedan 2 errores que me salen que si no se que hacer, que son:

1- Improper Use of typedef 'pNodo'
2-Statement missing ;

este es el codigo acomodado..

#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <dos.h>

typedef struct Nodo {
int valor;
struct Nodo *sig;
}TipoNodo;

typedef TipoNodo *pNodo;
typedef TipoNodo *Lista;
int ListaVacia (Lista lista) {
return (lista == NULL);}
void insertar (Lista *lista, int v);
void eliminar (Lista *lista, int v);
void eliminarlista (Lista *lista);
void mostrarlista (Lista *lista);
void main (void){

Lista lista = NULL;
insertar (&lista, 9);
insertar (&lista, 3);
insertar (&lista, 15);
insertar (&lista, 10);
mostrarlista (&lista);
}

Lista lista = NULL;
void insertar (Lista *lista, int v){
pNodo Nuevo;
Lista aux;
Nuevo (pNodo)malloc(sizeof(TipoNodo));
Nuevo->valor=v;
if (ListaVacia (*lista)||(*lista)->valor > v){
Nuevo -> sig = *lista;
*lista = Nuevo;
}else{
aux= *lista;
while (aux -> sig != NULL && aux -> sig -> valor > v){
aux = aux -> sig;
}
Nuevo -> sig = aux -> sig;
aux -> sig = Nuevo;
}
}

Porfavor ayudenme en serio... quiero aprender...gracias..