understanding 'p∈ (n, succ)' I understand that this may be a stupid question to some, but I've come to my wit's end trying to understand this condition: 
 if p ∈ (n, succ) then

I keep running across this in some pseudo code that I've been reading for the past 16 hours. I understand that '∈' typicaly symbolizes a set, such as 'p∈b' would make p an element of b, but how would I interpret 'p∈ (n, succ)'?
Full example
procedure n.Stabilize
    p = succ.GetPredecessor
    if p ∈ (n, succ) then
        succ = p
    end if
    succ.Notify n
end procedure

procedure n.Notify p
    if p ∈ (pred, n] then
        pred = p
    end if
end procedure

Note that the square bracket in 'if p ∈ (pred, n] then' is intended.
 A: I'm not entirely sure that this answer is correct, but it seems reasonable and makes (some) intuitive sense.

Let us assume that we have some comparison method $\prec$ with respect to which we want to find successors and predecessors. For example, we could say that $p \prec n$ if $p$ "precedes" $n$.
So the predecessor of $n$ would be a $p$ such that $p \prec n$, and if for any $q$ we have $q \prec n$, then either $q \prec p$ or $q = p$ (more conveniently, $q \preceq p$). Similarly for successor (just flip all the $\prec$ to $\succ$).
Then I suspect that we are dealing with the so-called interval notation. This comprises the following definitions:

$\begin{align}
 &&&&[p,n] &:= \{q: p \preceq q \preceq n\} & [p,n)&:= \{q: p \preceq q \prec n\}\\
 &&&&(p,n] &:= \{q: p \prec q \preceq n\} & (p,n)&:= \{q: p \prec q \prec n\}
\end{align}$

With this definition, n.Stabilize is seen to check whether the predecessor of succ is n; if it is rather some p, then we need to update the successor of n to be p.
n.Notify p checks if p should be the predecessor of n; probably the interval (pred,n] (including n) is used because of the root node being its own predecessor.
I hope this continues to make some sense in the broader context in which your question arose.
