Showing any countable, dense, linear ordering is isomorphic to a subset of $\mathbb{Q}$ I'm trying to knock out a few of the later exercises from Enderton's Elements of Set Theory. This problem is #17, found on page 227.

A partial ordering $R$ is said to be dense iff whenever $xRz$, then $xRy$ and $yRz$ for some $y$. Assume $(A,R)$ is a linearly ordered structure with $A$ countable and $R$ dense. Show that $(A,R)$ is isomorphic to $(B,<_Q)$ for some subset $B$ of $\mathbb{Q}$. 

I had an idea, but I'm not sure how to communicate it formally, so I'm hoping to get some help on this. First, since $A$ is countable, I can list it as a sequence, $A=\{a_0,a_1,a_2,\ldots\}$, even if this isn't the actual linear ordering dictated by $R$. The text suggests that I define some order isomorphism $f$ by defining $f(a_i)$ by recursion on $i$. 
I began by letting $f(a_0)=q_0$ for some arbitrary rational. I then look at $a_1$, if $a_0Ra_1$, I would then let $q_0<f(a_1)$, and if $a_1Ra_0$, I instead choose $f(a_1)<q_0$. This continues, so for example, if $a_2Ra_1\land a_0Ra_2$, I would then want to choose $f(a_2)$ such that $q_0<f(a_2)<q_1$ and so on. 
Since $\mathbb{Q}$ is dense, I just want to choose some rational to preserve the order as I go along sequentially in $A$, and figure out the order as I go. Is this right? If so, what's the rigorous way to state this idea? I'm particularly concerned about how $f$ can respond to where the next element $a_{i+1}$ might be in relation to the previous $a_0,\ldots, a_i$, and how to decide which element to pick out. Thank you.
 A: Your scheme is a simply an inductive (or recursive) definition of a function. To define a function $f : \mathbb N \to X$ (or any countable set as domain) according to this scheme you need i) supply the base case $f(1)$, and ii) for each $n > 1$ supply a rule how to compute $f(n)$ from its predecessors $f(n-1), \ldots, f(1)$. 
In your example, let $A = \{a_1, a_2, a_3,\ldots \}$ be a countable infinite lineary ordered set, define $f(a_1) \in A$ arbitrary (for example $f(a_1) := 0$). For the induction step, suppose $f(a_1), \ldots, f(a_{n-1})$ have been defined ($n > 1$), then define $f(a_n)$ according to the following cases:
i) $a_n > a_k$ for all $k = 1,\ldots, n-1$, then set $f(a_n) = n$.
ii) $a_n < a_k$ for all $k = 1,\ldots, n-1$, then set $f(a_n) = -n$.
iii) $a_1 < \ldots < a_i < a_n < a_j < \ldots < a_n$, then set
$$
 f(a_n) = \frac{\phi(a_i) + \phi(a_j)}{2}
$$
(or some other rational number between them).
This yield an order preserving injection into $\mathbb Q$ (and therefore an order preserving bijection to a subset $B \subseteq \mathbb Q$), note that the existence of the dense set $R$ was no used here. Also note that the injection isn't a surjection in general, and sometimes it is not possible to give one, for example it is not possible to find an order preserving bijection from $\mathbb Z$ to $\mathbb Q$.
So what is this dense set $R$ useful for? You need this if you want to find a surjection onto $\mathbb Q$, but as this is not clearly stated I think this exercise is not well-phrased. Anyway, I will state a result that might interest you, cause there something like your set $R$ is actually needed:
Theorem: Let $(A, \precsim)$ be a lineary ordered set, then the following two conditions are equivalent:
(i) There is a finite or countable order-dense subset of $A$,
(ii) There is an injection of $(A, \precsim)$ into $(\mathbb R, \le)$.
A proof of this could be found in:
Foundations of Measurement, Volume I, by D.H. Krantz, R.D. Luce, P. Suppes, A. Tversky.
A: In fact, there is no need to assume that $R$ is dense. The fact is that every countable linear order embeds into the rational line. Another way to say this is that the rational line (or any countable dense linear order) is universal for countable linear orders.
The proof is just as you describe. Given a countable order $\langle A,R\rangle$, enumerate $A=\{a_0,a_1,\ldots\}$ and build the full isomorphism of $A$ into $\mathbb{Q}$ by successively defining $f(a_n)$. At any stage of the construction, we have a partial isomorphism defining the images of $a_i$ for $i\lt n$, and we want to define $f(a_n)$. The images $f(a_i)$ form a finite subset of $\mathbb{Q}$, which divides $\mathbb{Q}$ into finitely many intervals. So we look at how $a_n$ sits with respect to the $a_i$ for $i\lt n$, that is, at which interval in $A$ it sits in among those finitely many endpoints, and then choose any point in $\mathbb{Q}$ that fits in the corresponding interval in the image, and let that point be $f(a_n)$. Thus, we have made an order-preserving map at each stage, and so the full map is an order-isomorphism of $A$ with a subset of $\mathbb{Q}$ as desired.
Cantor proved also that in the case $R$ is dense and the order $\langle A,R\rangle$ has no endpoints, then in fact $\langle A,R\rangle$ is isomorphic to $\mathbb{Q}$, and one can prove this by using the back-and-forth technique, using the same idea, but now one must also ensure not only that the $n$-th point of the domain gets added to the isomorphism, but also that the $n$-th point of the range is added. To prove the property you requested, however, you only need the "forth" part of the back-and-forth construction.
A: what you are doing by building $f$ step-by-step is called building a partial map. Having already picked $b_{i}$ ($=f(a_{i})$) for $i<m$, you pick $b_{m}$ so that it preserves the relations that $a_{m}$ has with the $a_{i}$ for $i<m$. This is possible because $\mathbb{Q}$ is dense and has no endpoints. So, at every state you can enlarge the partial isomorphism. After $\omega$-many steps, the domain of the map will be all of $A$, and the $f$ you will have built will be an order preserving injection of $(A,R)$ into $\mathbb{Q}$. 
To see that you can always extend the partial map, note that you only have to meet finitely many conditions each time. So your $a_{i}$ will atmost be between some two previous elements, or larger than all of them or greater than all of them. But since $\mathbb{Q}$ is dense and has no endpoints, in each case we can pick a corresponding $b_{i}$. 
Also, notice that I made no assumptions here about $(A,R)$ here, except that it is a countable linear order. In case $(A,R)$ is countable, dense and has no endpoints, you can do even better, ie you can in a similar way build an isomorphism between $(A,R)$ and $(\mathbb{Q},<)$. The way to do this is similar to the above one, except you  enumerate $A$ and $\mathbb{Q}$ and then build a isomorphism element by element such that it respects the orderings and has range $\mathbb{Q}$ and domain $A$. One way to do this is to first map an element of $A$ to an element of $\mathbb{Q}$ and then map the least unmapped element of $\mathbb{Q}$ in the enumeration to an element of $A$.
Keywords for what you are looking for are:
Back-and-forth method, Ehrenfeucht-Fraïssé game.
Any model theory text book (Hodges, Marker, Poizat etc) should have a detailed account of this method.
A: Here is a sketch of another approach. First, sort the rationals into a binary search tree where each rational appears exactly once (see https://en.wikipedia.org/wiki/Stern%E2%80%93Brocot_tree). Then, sort $(A,R)$ into a binary search tree. Then the order isomorphism can be read off the trees-- the roots map to each other and Right Right Left maps to Right Right Left etc. Surjectivity follows from the no-extrema and denseness properties of $(A,R)$. 
I think this makes sense, but I'm not totally sure. Criticism of this answer is welcome. Source for this idea: https://www.uio.no/studier/emner/matnat/ifi/nedlagte-emner/INF5170/v14/undervisningsmateriale/countable-densely-ordered-sets.pdf
A: To describe this algorithm, we find it helpful to define an auxiliary function:
Define the function $F$ as operating on ordered 3-tuples $(a, \vec b, \vec p)$ with
$\tag 1 a \in A$
$\tag 2 \vec b \text{ is a n-tuple in } A^n \text{ such that } \pi_i(\vec b)\, R \,\pi_{i+1}(\vec b)$
$\quad \quad \quad \quad\quad \quad\quad \quad\quad \quad\quad \quad\quad \quad \text{ for } 1 \le i \le n \text{ indexing the coordinate projections } \pi_i$
$\tag 3 \vec p \text{ is a n-tuple in } \mathbb Q^n \text{ such that } \pi_i(\vec b) \lt \pi_{i+1}(\vec b)$
$\quad \quad \quad \quad\quad \quad\quad \quad\quad \quad\quad \quad\quad \quad \text{ for } 1 \le i \le n \text{ indexing the coordinate projections } \pi_i$
and $n$ an integer taking on values greater than $0$.
The output of $F$ is of the form $(\vec c, \vec q)$ with
$\tag 4 \vec c \text{ is a n+1-tuple in } A^{n+1} \text{ such that } \pi_i(\vec c)\, R \,\pi_{i+1}(\vec c)$
$ \quad \quad \quad\quad \quad\quad \quad\quad \quad\quad \quad\quad \quad \text{ for } 1 \le i \le n +1 \text{ indexing the coordinate projections } \pi_i$
$\tag 5 \vec q \text{ is a n+1-tuple in } \mathbb Q^{n+1} \text{ such that } \pi_i(\vec q) \lt \pi_{i+1}(\vec q)$
$\quad \quad \quad\quad \quad\quad \quad\quad \quad\quad \quad\quad \quad \text{ for } 1 \le i \le n+1 \text{ indexing the coordinate projections } \pi_i$
It is tedious to completely describe $F$, but here is a sketch:
It inserts $a$ into the sorted $\vec b$ giving $\vec c$.
It modifies $\vec p$ in lockstep, opening up a coordinate at the same insertion point.
if $a$ is a minimal going into $F$, it takes over the $1^{st}$ coordinate of $\vec c$ and $\pi_1(\vec q) = \pi_1(\vec p) - 1 = \pi_2(\vec q) - 1$.
if $a$ is a maximal going into $F$, it goes into the last coordinate of $\vec c$ and $\pi_{n+1}(\vec q) =  1 + \pi_n(\vec q)$.
if $a$ is a nested inside the  $\vec b$ chain, we would take the average of the two corresponding rational numbers in $\vec p$.
We define $G(0) = \left((a_0),(0)\right)$ and $G(k+1) = F(a_{k+1}, G(k))$ .
so that $G(n)$ sets up an isomorphic bijection between $(a_k) \; 0 \le k \le n$ and $n+1$ rational numbers.
