I'm learning vantage point trees, and I met this while reading the paper Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces by Peter Yianilos (Proceedings of SODA 1993, SIAM, pages 311–321; PDF). The following pseudocode appears in Algorithm 1.

$$\begin{align*} \hspace{2em}&\hspace{-2em} \textbf{function}\text{ Make_vp_tree(}S\text{)}\\ &\textbf{if }S=\emptyset\textbf{ then return }\emptyset\\ &\text{new(node);}\\ &\text{node}\!\uparrow\!\!\text{.p} := \text{Select_vp(}S\text{);}\\ &\text{node}\!\uparrow\!\!\text{.mu} := \text{Median}_{s\in S}\, d(p,s);\\ &\dotsc \end{align*}$$

node is a node of vp-tree, so I know what node.p means, but what do that up arrow means in this context?


1 Answer 1


The algorithms in the paper you link to are described in a notation quite similar to Pascal, a language that treats pointers in a very particular way. In Pascal, pointers are declared as references to values of specific types (a pointer to an integer can never refer to a boolean, for instance).

The upward arrow, in the example you reproduce, is a dereferencing operator. Clearly, node is a pointer to a value of a record type (not a record itself), of which p and mu are fields, so node.p has no meaning.

Check out this similar question for further clarification.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.