  The palindromic tree (a.k.a. eertree) is a linear-size data structure that
provides access to all palindromic substrings of a string. In this paper, we
propose a generalized version of eertree, called double-ended eertree, which
supports linear-time online double-ended queue operations on the stored string.
At the heart of our construction, is a class of substrings, called surfaces, of
independent interest. Namely, surfaces are neither prefixes nor suffixes of any
other palindromic substrings and characterize the link structure of all
palindromic substrings in the eertree.
  As an application, we develop a framework for range queries involving
palindromes on strings, including counting distinct palindromic substrings, and
finding the longest palindromic substring, shortest unique palindromic
substring and shortest absent palindrome of any substring. In particular,
offline queries only use linear space. Apart from range queries, we enumerate
palindromic rich strings with a given word in linear time on the length of the
given word.
