If $a$ and $b$ are two successive nodes (thus distant by $1/n$), then $|f(x)-f(y)|<\epsilon$ for any $x,y\in]a, b[$, this is true by construction (specifically, the construction of $n$ and $\epsilon$). We can thus conclude that $|f(x)-f(a)|\leq\epsilon$ and $|f(x)-f(b)|\leq\epsilon$ because $f$ is continuous.
(For example, if we fix $c,x\in]a, b[$, we know that $|f(c)-f(x)|<\epsilon$. $|f(c)-f(x)|$ is a continuous function in $x$, so if we let $x$ tend to $a$, we'll find that it tends to $|f(c)-f(a)|$. But a function taking on values strictly less than $\epsilon$ can't tend towards something strictly greater than $\epsilon$, so $|f(c)-f(a)|\leq\epsilon$.)
Since $f$ and the polygonal curve are within $\epsilon$ of one another on each segment, they're within $\epsilon$ of each other on the entire interval. Thus they are within $\epsilon$ of one another in the sense of the norm $\|\cdot\|_\infty$. Since this works for any $\epsilon$, and for any $f$, we have shown that $f$ can be approximated as closely as desired by a polygonal curve, in other words, the set of polygonal curves is dense in $C[0, 1]$.
That's not very helpful, though, because the set of polygonal curves is not countable. That's why the next step is to show that we can assume the polygonal curve in question takes on rational values at its node points (which we're already assuming are rational). Basically, we can do this because the rationals are dense in the reals, so we just have to nudge the nodes of the polygonal curve up or down by an arbitrarily small amount in order to achieve this, so we can still approximate $f$ as well as we like (see the paragraph right under the diagram for the details).
And apparently, the set of polygonal curves so described is countable. Not sure why that is off the top of my head.
Let $$\mathscr P_n=\{\{0=x_0<x_1<\cdots<x_n<x_{n+1}=1\}:x_i\in\mathbb Q\},$$ let $$\mathscr P=\bigcup_{n=0}^\infty\mathscr P_n,$$ let $$\mathscr Q_P=\{(x_i,x_{i+1})\}_{i=0}^n\text{ for every }P=\{0=x_0<x_1<\cdots<x_n<x_{n+1}=1\}\in\mathscr P,$$ and let $$S=\{f:[0,1]\to\mathbb Q:P\in\mathscr P\text{ and }f\text{ is constant on every }I\in\mathscr Q_P\}.$$ Can you show that $S$ is a countable, dense subset of $E[0,1]$ with respect to the $d_1$ metric?
Alternatively, you can show that $[0,1]$ is a separable measure space, so that $L^1[0,1]\supset E[0,1]$ is separable and thus $E[0,1]$ is separable.
Best Answer
(1) You get $\| f - g\|_\infty \le \epsilon$ by simply taking more and more points (i.e., increasing $n$). Since $f$ is uniformly continuous, if $g$ matches $f$ at every point $k/n$ and $n$ is large enough, you will eventually get $\lvert f(x) - g(x) \rvert \le \epsilon$ for all $x \in [0,1]$ because $$\lvert f(x) - g(x) \rvert \le \underbrace{\lvert f(x) - f(k/n)\rvert}_{\text{small by continuity of } f} + \underbrace{\lvert f(k/n) - g(k/n) \rvert}_{=0, \text{ by def. of } g} + \underbrace{\lvert g(k/n) - g(x) \rvert}_{\text{small by continuity of } g}$$ where you choose the $k/n$ closest to $x$ in the above line.
(2) You can't have $h(k/n)= f(k/n)$ because you need the values of $h(k/n)$ to be rational (to ensure the family of such $h$ remains countable) but you may have $f(k/n)$ irrational. So you first make the $g$ with $g(k/n) = f(k/n)$; $g$ is a nice polygonal function, but may have irrational values at nodes $k/n$. However, because of density of the rationals, there is a rational point as close as desired to $g(k/n)$. Define $h$ the same way as $g$ but with $h(k/n)$ a rational number such that $\lvert h(k/n) - g(k/n) \rvert \le \epsilon$. Then $h$ pretty well approximates $g$ and $g$ pretty well approximates $f$ so $h$ pretty well approximates $f$, and has rational values at nodes $k/n$.
(3) Density of the rationals: you're just taking $g$ and possibly moving its values as nodes $k/n$ by a tiny bit.
(4) The countable dense set is the set of polygonal functions $h$ such that $h(k/n)$ is rational for all $k = 0,1,\ldots,n$. This set is countable because it can be seen as a subset of $$\bigcup_{n\in\mathbb N} \mathbb Q^{n+1}$$ via the following reasoning: choose the number $n$ of nodes, then choose the $n+1$ rational values at nodes $k/n$ for $k=0,1,\ldots,n$, and you have uniquely determined your polygonal function $h$. But $\mathbb Q^{n+1}$ is countable, and a countable union of countable sets is countable, so this shows that the set of such functions $h$ is countable.