Tengo problemas con entender la estructura para crear listas enlazadas, según yo es asi: 
struct nodo // se crea la estructura de los nodos
{
    string info;
    struct nodo *sig;
};
int main()
{
   struct nodo *lista; 
    struct nodo *nuevo;
    lista=Null;
}
pero como hago un nuevo nodo?, eh visto programas donde solicitan el numero de nodos a ingresar, no se puede dejar  indefinido y hacer cuantos nodos ingrese el usuario? 

 los ejemplos que hay en internet no los logro descifrar  
