$$D^+f(0)=\lim_{h \to 0}\sup\limits_{0<|t|\leq h}\frac{f(t)-f(0)}{t}=\lim_{h \to 0}\sup\limits_{0<|t|\leq h}\frac{t\sin \frac1t}{t}=\lim_{h \to 0}\sup\limits_{0<|t|\leq h}\sin\frac{1}{t}$$ Ahora, no importa lo pequeño que sea $h$, siempre existe un punto $t$ en $(0,h]$ tal que $\sin\frac{1}{t}=+1$ (toma $t=\frac{1}{n\pi +\frac{\pi}{2}}$ para $n$ suficientemente grande) Por lo tanto, $D^+f(0)=+1$. De manera similar, $D^{-}f(0)=-1.
En todos los puntos $x\neq 0$, $x\sin\frac{1}{x}$ es diferenciable y por lo tanto $$D^+f(x)=D^-f(x)=f^{\prime}(x)=\sin \frac{1}{x}-\frac{1}{x}\cos\frac1x$$
Para $g$: Si $x\in \mathbb{Q}$,$$D^+g(x)=\lim_{h \to 0}\sup\limits_{0<|t|\leq h}\frac{g(x+t)-g(x)}{t}=\lim_{h \to 0}\sup\limits_{0<|t|\leq h}\frac{\chi_{\mathbb{Q}}(x+t)-1}{t}$$ Ahora $$\frac{\chi_{\mathbb{Q}}(x+t)-1}{t}=\begin{cases} 0&\mbox{si } t\in \mathbb{Q}\\ \frac{-1}{t}&\mbox{si } t\notin \mathbb{Q}\end{cases}$$ El supremo se alcanza cuando $t<0$ y $t\notin \mathbb{Q}$, lo que significa $0<-t\le h\Rightarrow -h\le t<0$. No importa lo pequeño que sea $h, siempre existe un punto $t\in [-h,0)\cap \mathbb{Q}^c$ (argumento de densidad) y entonces $$D^+g(x)=\lim_{h \to 0}\sup\limits_{0<|t|\leq h}\frac{\chi_{\mathbb{Q}}(x+t)-1}{t}=\lim_{h \to 0}\sup\limits_{-h\le t<0}\frac{-1}{t}=+\infty$$ Todos los otros casos se resuelven de la misma manera