A left-first search algorithm for planar graphs

Discrete & Computational Geometry, Jun 1995

We give anO(|V(G)|)-time algorithm to assign vertical and horizontal segments to the vertices of any bipartite plane graphG so that (i) no two segments have an interior point in common, and (ii) two segments touch each other if and only if the corresponding vertices are adjacent. As a corollary, we obtain a strengthening of the following theorem of Ringel and Petrovič. The edges of any maximal bipartite plane graphG with outer facebwb′w′ can be colored by two colors such that the color classes form spanning trees ofG−b andG−b′, respectively. Furthermore, such a coloring can be found in linear time. Our method is based on a new linear-time algorithm for constructing bipolar orientations of 2-connected plane graphs.

A PDF file should load here. If you do not see its contents the file may be temporarily unavailable at the journal website or you do not have a PDF plug-in installed and enabled in your browser.

Alternatively, you can download the file locally and open with any standalone PDF reader:


A left-first search algorithm for planar graphs

Discrete Comput Geom Geometry Discrete & Computational A Left-First Search Algorithm for Planar Graphs 0 1 2 0 2Department of Computer Science, City College, CUNY , New York, NY 10031 , USA and Courant Institute, N.Y.U. , 251 Mercer Street, New York, NY 10012 , USA 1 1Centre de Math6matiques Sociales, EHESS , 54 Boulevard Raspail, 75006 Paris , France 2 H. de Fraysseix , 1 P. O. de Mendez, 1 and J. Pach 2 We give an O(IF(G)l)-time algorithm to assign vertical and horizontal segments to the vertices of any bipartite plane graph G so that (i) no two segments have an interior point in common, and (ii) two segments touch each other if and only if the corresponding vertices are adjacent. As a corollary, we obtain a strengthening of the following theorem of Ringel and Petrovi~. The edges of any maximal bipartite plane graph G with outer face bwb'w' can be colored by two colors such that the color classes form spanning trees of G - b and G - b ' , respectively. Furthermore, such a coloring can be found in linear time. Our method is based on a new linear-time algorithm for constructing bipolar orientations of 2-connected plane graphs. * The research of H. de Fraysseix and P. O. de Mendez was supported by ESPRIT Basic Research Action No. 7141 (ALCOM II). J. Pach's research was supported by NSF Grant CCR-9122103, OTKA-4269, and ALCOM II. - 1. Introduction T h r o u g h o u t this p a p e r we consider only finite graphs G without loops, but we allow multiple edges. If G has no multiple edges, t h e n it is called a simple graph. A graph is 2-connected if it cannot be d i s c o n n e c t e d by the removal of a vertex. L e t G be a d i r e c t e d graph o b t a i n e d by orienting the edges of G. A vertex of t~ is said to be a source (sink) if its i n d e g r e e ( o u t d e g r e e ) is 0. G is acyclic if it contains no oriented cycle. For any partition of the vertex set V(G) = V1 u 1/2, the family of edges between V1 and V2 is said to form a cocycle (or an oriented cut) if all of them are oriented toward V2. The following concept was introduced by Lempel et al. [LEC] to design an efficient planarity-testing algorithm. It plays a crucial role in many problems about graph drawings, motion planning, visibility, and incidence relations between geometric objects, etc. [EET], [FMR], [FPP], [FRU], [OW], [P2], [R2], [R3], [RT], [T1], IT2], [TF1], [TF2]. Definition 1.1. Given an edge g = J~ of G, we say that the orientation of G is g-bipolar (or defines an st-ordering) if: (a) G is acyclic, and (b) s and t are the unique source and sink of G, respectively. We also use another equivalent form of this definition (which can easily be extended to matroids). Lemma 1.2. Given an edge g o f G, the orientation of G is g-bipolar if and only if: (a') every edge of G belongs to a cocycle, and (b') every cocycle of G contains g. Proof. Obviously, (a') implies (a). Conversely, if G is acyclic and g' = ~ is any edge, then let V2 be the set of all vertices that can be reached from t' by a directed path, and let V1 = V((~) - V2. Then all edges between V1 and V2, including e", are oriented toward V2, thus (a') holds. To show that (b) implies (b') for any acyclic digraph G, it is enough to observe that, if a partition V(G) = V1 u V2 defines a cocycle, then V1 and V2 must contain a source and a sink, respectively. Thus, s ~ V 1, t ~ V2, and g = ~ belongs to this cocycle. Conversely, if an acyclic digraph satisfies (b') with g = ~ then, for any source x (and sink y), the collection of edges incident to x (y) forms a cocycle. Consequently, g is incident to both x and y. Hence, x = s, y = t, and (b) holds. [] Corollary 1.3. I f G has an g-bipolar orientation, then it has no two cocycles such that one contains the other. Proof. Let E and E ' be two cocycles of G defined by the partitions V1 u V2 and 1/1' u 1/~, respectively, where s ~ V1 o V[ and t ~ V2 n V~. Suppose without loss of generality that W1 = 1/~ n V2 4= 0 . If E___E', then W1 and W2 = V ( G ) - W 1 define a cocycle which does not contain g = sT, contradicting condition (b') in Lemma 1.2. [] If G has an g-bipolar orientation, then its underlying graph G (obtained by disregarding the orientation of the edges) is obviously 2-connected. Indeed, if G fell into two components G 1 and G 2 by the removal of a vertex x, then, by the acyclicity of G, both parts of G induced by V(G 1) U {x} and V(G 2) U {x} would contain a source and a sink, contradicting condition (b) of Definition 1.1. On the other hand, it is easy to see that, given any 2-connected graph G and any edge e = st, an Y-bipolar orientation of the edges of G exists with Y = gL Moreover, Even and Tarjan [ET] devised a linear-time algorithm to find such an orientation, which has been subsequently simplified by Ebert [E] and Tarjan IT2]. In Section 2 of this paper we propose an equally fast but much simpler greedy algorithm based on Whitney's theorem [W] to find bipolar orientations of 2connected plane graphs. A plane graph is a planar graph embedded in the plane (or in the sphere) so that its edges are represented by simple noncrossing Jordan arcs. If a plane graph G with at least three vertices is 2-connected, then its dual graph G* can be defined as follows. Put a vertex of G* in each face of G and, if two faces meet along an edge f, then connect the corresponding two vertices by an arc f* crossing f. (It is well known and easy to see that this construction can be carried out so that we obtain a plane graph G*. By the 2-connectedness of G, G* has no loops, but it may have multiple edges.) Any orientation of G induces a dual orientation of G* in a natural way: we obtain the orientation of f* from that of f by a clockwise turn. Theorem 1.4. Let G be an Y-bipolar orientation of a 2-connected plane graph with at least three vertices, and let G* denote its dual graph with the dual orientation. Then the directed graph G* obtained from G* by reversing the orientation of Y* is Y*_-bipolar oriented, where ~*_ and Y* are opposite orientations of the same edge. Proof. We show that G*_ satisfies conditions (a') and (b) of I_emma 1.2 and Definition 1.1, respectively. Let G_ denote the digra~oh obtained from G by changing the orientation of Y = s~ to d_ = gL Any edge of G can be extended to a directed path in G connecting s to t. Thus, any edge f ~ E ( G _ ) belongs to a (simple) cycle of G_ passing through ~'_. The edges of G*_ crossing this cycle form a cocycle containing f * (and Y*), which proves (a'). Suppose, for contradiction, that G*_ does not satisfy (b). Let s* and t* denote the endpoints of Y*_ (0'* = s*-~t), and assume without loss of generality that G*_ has a source x different from s*. Clearly, x 4: t*. Those edges of G_ which cross an edge incident to x form a cycle. Since this cycle does not use the arc e, this would also be a cycle in G, a contradiction. [] As any graph which has a bipolar orientation is 2-connected and vice versa, Theorem 1.4 immediately implies that the dual of a 2-connected plane graph is also 2-connected. In Section 3 we apply the above concepts and results to obtain the following theorem. Theorem 1.5. A linear-time algorithm exists which assigns vertical and horizontal segments to the vertices of any bipartite plane graph G so that: (i) No two segments have an interior point in common. (ii) Two segments touch each other if and only if the corresponding vertices are adjacent in G. Note that if the black and white vertices of a bipartite (2-colored) graph G can be represented by vertical and horizontal segments, respectively, satisfying conditions (i) and (ii), then G is necessarily planar. We say that a graph G has a segment representation if its vertices can be represented by segments in the plane so that two segments cross each other if and only if the corresponding vertices are adjacent. It was shown in [HNZ] that any bipartite planar graph can be represented in such a way. Note that this fact is an immediate corollary to Theorem 1.5. However, it is not known whether every planar graph admits a segment representation. Definition 1.6. A bipartite plane graph is called a quadrilateralization if it contains no multiple edges and each of its faces has four edges. It is easy to see that every quadrilateralization is 2-connected. Given a bipartite plane graph, in linear time we can remove all multiple edges (by lexicographically bucket-sorting all edges with respect to their endpoints). Then we can use any naive linear-time algorithm to extend the remaining graph to a quadrilateralization, by adding edges and vertices. Thus, it is sufficient to prove Theorem 1.5 for quadrilateralizations. Definition 1.7 [R1]. Let H be a connected plane graph. Triangulate every face f of H from one of its interior points xf (by connecting xf to the vertices of f ) , and delete all edges belonging to H. The resulting graph A ( H ) is called the angle graph of H. Remark 1.8. Let H be a connected plane graph. Then A ( H ) is a quadrilateralization if and only if H is 2-connected. On the other hand, every quadrilateralization can be obtained as the angle graph of some 2-connected plane graph. Lemma 1.9. Let G be a quadrilateralization whose vertices are colored black and white. For every face f of G, connect its two black (white) vertices by an edge within f. The graph G b (Gw) formed by these edges is called the graph of black (white) diagonals of G. Then A ( G b) = A ( G w) = G . Corollary 1.10. G b and Gw are 2-connected plane graphs, dual to each other. Proof. Immediately follows from Remark 1.8. [] For some related results, see [DLR] and [TF3]. In Section 4 of this paper we apply our technique to give a simple alternative proof of a theorem of Ringel JR1] and Petrovi~ [P1] on quadrilateralizations (see Corollary 4.1). 2. GreedyAlgorithm for Bipolar Orientation 2.1. The General Scheme Let G be any 2-connected graph with n vertices and m edges. For any edge st of G, G has a Whitney decomposition into handles, i.e., there is a nested sequence of subgraphs G O = {st} c G 1 c G 2 c ... c G k = G such that Gi+ 1 c a n be obtained from G i by the addition of a simple path P,+t which has only its endpoints in common with G i. First we present a simple general algorithm which maintains a total ordering of the vertices of G i such that every Pj (j < i) forms a monotone chain. Directing every edge of G toward its larger endpoint in the final ordering, we obtain an st-ordering (bipolar orientation) of G. In fact, our algorithm will also maintain the orientation of the edges of Gi compatible with the ordering of its vertices. Suppose that we have already found a sequence of subgraphs Gj (j < i) with the above properties, and that the vertices of G i are totally ordered by a linked list called "LINK." Assume further that all edges of Gi are oriented toward their higher endpoints in this order, and every ~ (j < i) forms an oriented path. A vertex x ~ V ( G i) is said to be saturated, if all edges of G incident to x belong to Gi. Step i (i >_>_0) of our algorithm consists of three parts: ( 1 ) Find the first unsaturated vertex x ~ V(G~) on the list LINK. ( 2 ) Find a simple path Pi+l in G - G~ connecting x to some other vertex y E V ( G i ) such that no internal point of Pi+l belongs to V ( G ) . Orient the edges of P~§ from x toward y. ( 3 ) Insert the internal vertices of Pi+ 1 in the list L I N K between x and LINK[x], i.e., immediately after x. If we cannot execute ( 1 ), i.e., all vertices of G i a r e saturated, then G~ = G and our algorithm ends. Otherwise, let x ' be any neighbor of x such that the edge x r ' does not belong t o G i. If x ' ~ V ( G i ) , then x ' is also unsaturated, so x precedes x ' on the list LINK. In this case, Pi§ consists of the single edge xx' oriented from x to x ' , and ( 3 ) is void. If x ' q~ V(Gi), then it follows from the 2-connectedness of G that it can be connected to some y ~ V ( G i ) , y -~ x, by a simple path in G - G i . Obviously, x precedes y on the list LINK, so in this case we can execute ( 2 ) and ( 3 ) without adding any edge oriented backward with respect to the revised L I N K list, and we can pass to the next step. Note that in the last part of Step i, when we revise the L I N K list, we do not add any elements below x. Since all elements preceding x have already been saturated in G~, when we come to part ( 1 ) of Step i + 1, we do not have to check any member of L I N K before x. To execute part ( 2 ) of Step i, we can use depth-first search on G - Gi, starting at x and stopping when we hit the first vertex y ~ V(Gi). We put every edge e of the tree visited during the search in a (last-in, first-out) stack, and remove e if we have to "backtrack" along it. At the end of the search, the edges remaining in our stack will form a simple path Pi+l - G - G i meeting the requirements. However, unless we are lucky, this procedure may take I ) ( I E ( G - Gi)Dtime, and, summing over all 0 < i < k, the total running time of our algorithm can be as large as l ) ( k m ) . 2.2. The P l a n a r Case If G is a plane graph, then the above algorithm can be implemented in O ( m ) time. Suppose that, for every vertex v, we are given the clockwise circular order of the edges incident to v. We follow the same scheme as in the general case. To execute part ( 2 ) of Step i, we use the following method that can be called "left-first search." Whenever we orient a new edge f toward one of its endpoints z, then we set IN[z] = f. Furthermore, let IN[s] = st. Assume that we have already finished part ( 1 ) of Step i, i.e., we have found the first unsaturated vertex x ~ V ( G i) on the list LINK. Starting from x 0 = x, we construct the path Pi+l = XoXlX2 . . . as follows. For every j > 0, let x j x j + 1 be the first unoriented edge incident to xj, which follows IN[xj] in the clockwise order. Orient x j x j + 1 from xj toward xj+ 1. If xj+ 1 ~ V ( G i ) , then it is the last point of P i + l , and part ( 2 ) of Step i has been completed. To prove that this construction is correct, it is enough to check that xj+ 1 :~ xh for any h < j . However, this is true, otherwise XhXh+ 1 ... Xj+ 1 would bound a face of G, and x j x j + 1 = x hxj would precede x h x h +1 in the cyclic order of edges around Xh, contradicting the choice of x h +1. It remains to show that our algorithm can be implemented in linear time. To this end, whenever we orient an edge z T , then we introduce a pointer N E X T [ z ] pointing to the edge that follows immediately after z z ' in the clockwise order of edges incident to z. L e t x = x o ~ V ( G i) be the first unsaturated vertex on the list L I N K at the beginning of Step i of the algorithm. According to te above rule, next we have to find the first unoriented edge XoX 1 which comes after IN[x 0] in the clockwise order of edges incident to x 0. However, this can be accomplished in constant time, because XoX 1 = NEXT[x0]. To prove this, it is enough to notice that the edges oriented toward x 0 at the beginning of Step i form a single block in the clockwise order of edges incident to x o, whose last element is the edge along which x 0 has been visited for the first time. Note that the same algorithm can be used to find a Whitney decomposition (and a bipolar orientation) of any cellular graph. Definition 2.1. A graph G that can be embedded in an oriented 2-manifold E is called cellular, if it divides E into connected components so that each of them is topologically equivalent to a disk. 3. Bipartite Plane Graphs In this section we prove Theorem 1.5. As we have pointed out in the Introduction, we can assume that G is a quadrilateralization (see Definition 1.6), whose vertices are colored black and white. Let G b and Gw be the graph of black diagonals and the graph of white diagonals of G, respectively (see Lemma 1.9). Furthermore, let s b, S w , t b, t w denote the vertices of the outer face of G, listed in clockwise order (sb,tb G V(Gb); sw, tw ~ V(Gw)). By Corollary 1.10, G b is 2-connected, so we can use the algorithm described in Section 2.2 to find an sbtb-ordering (bipolar orientation) of G b. That is, in linear time we can number the black vertices b 1 = s b, b 2, b3, . . ., bp = t b so that, orienting every edge of G b toward its endpoint of larger index, we obtain an sbtb>-bipolar orientation G b . Gb induces a dual orientation Gw on Gw. By Theorem 1.4, reversing the orientation of the edge twS ~ ~ Gw, we obtain an Swt w) -bi.polar orientation Gw. Using topological sorting, we can easily find a numbering of the white vertices w I = s w, W z , W 3 . . . . . Wq = tw such that every edge of Gw is oriented toward its endpoint of larger index ( p + q = [V(G)[). For any black point bi (1 < i < p), let Vi be a vertical segment in the plane, whose endpoints are (i, minb,w,~a j ) a n d (i, maXb,wj~a j). Similarly, to any white vertex wj (1 < j _< q), we assign a horizontal segment Hi, whose endpoints are (minbiw, E~ i, j) and (maXb,wj~C i , j ) . We claim that this collection of segments meets the requirements of Theorem 1.5. It is clear by the definition that all segments are contained in the rectangle enclosed by V1, H a, Vp, H q , and that each of these four segments is in contact with exactly those segments which correspond to its neighbors. Let us now fix a black point bk, 1 < k < p , and let B 1 = {bili < k}, B 2 = {bi[i > k}. Clearly, the edges connecting B 1 to B 2 U {b k} form a cocycle E 1 in Gb, and the edges connecting B 1 I,.) {bk} to B 2 form another cocycle E 2 . Since all cocycles of Gb are minimal (by Corollary 1.3), the edges of Gw intersecting some element of E 1 (E 2) form a (minimal) oriented cycle C 1 (C 2) passing through tw-~%. Deleting the edge twS w' from C 1 and C 2, we obtain two simple oriented paths P1 and P z , respectively, connecting Sw to tw in (~w. It is easy to see that b k is the only black vertex enclosed by P1 and P2. Indeed, if there were another v e r t e x b i (i < k , say) with this property, then all vertices along an oriented path connecting b 1 = s b to b i in (~b would belong to B 1, hence this path could intersect neither P1 nor P2, contradiction. On the other hand, since P1 and P2 are not identical, they must enclose at least one black vertex. Thus, starting from s~, P1 and P2 are identical up to a point s ' . Then they split up, and meet again at some point t ' , from which they run together to their common endpoint tw. Let P~ and P~ d e n o t e the parts of P1 and P2, respectively, connecting s" to t ' . Since all edges of G b intersecting some edge of P~ (P~) must end (start) at b k, we obtain that all vertices of P~ U P~ are adjacent to bk in G. Moreover, bk does not have any other neighbor not belonging to P~ U P~. Let W1 (W2) denote the set of white points, all of whose black neighbors are in B~ (B2). If a white point w does not belong to W~ u W2, then it must be a vertex of Px or P2. Indeed, if w ~ W1 t3 W2, then it has two consecutive neighbors b and b' such that, say, b ~ B x and b' ~ B~. However, then b-~ belongs to the cocycle E 1 in d b, so the edge of Gw crossing b-~ belongs to P1, and one of its endpoints is w. Let wj (1 < j < q) be a white vertex, and let Hj be the corresponding horizontal segment. Case 1: bkwj ~ G. Then wj ~ W1 U W2 or wj is an internal vertex of P1 n P2. If wj belongs to (say) W1, then maxb,wj ~ G i < k. So Hj is to the left of Vk, and njnv =O. Suppose next that wj belongs to (say) the portion of P1 /'2 lying strictly between sw and s~. Then j is smaller than the index of any white neighbor of bk, because all of these neighbors belong to P~ U P~ and can be reached from wj by an oriented path in Gw (along P1 or P2)- Thus, /-/j- is below Vk , and Hj n V~ = O. Case 2: bkwj E G. Then wj belongs to P~ U P~. If wj = sw (or tw), then wj has the smallest (largest) index among all white neighbors of bk, so the lower (upper) endpoint of Vk lies on Hi. Moreover, Vk has to touch Hj at one of its interior points, because wj must be adjacent to at least one black vertex whose index is smaller than k and to another one whose index is larger than k. Suppose next that wj is an internal point of (say) P~. Then the right endpoint of Hj is an interior point of Vk. This shows that the vertical and horizontal segments assigned to the vertices of G satisfy the conditions of Theorem 1.5. We have also proved that the only pairs of segments that share an endpoint are {I"1,Hi}, {H1, l/p}, {Vp,Hq}, and {Hq, ~ } . Consequently, the segments Vii and Hj (1 < i _<_p, 1 < j < q) determine a tiling of the rectangle bounded by V1, H 1, Vp, Hq with smaller rectangles. In a forthcoming paper [FMP], we prove Theorem 1.5 by induction. 4. Partition into Trees The aim of this section is to show that the following theorem of Ringel [R1] and Petrovi~ [P1] can be easily deduced from the above results. Corollary 4.1. Let G be a quadrilateralization, and let sb , Sw, tb, tw denote the vertices o f the outer face o f G, listed in clockwise order. Then the edge set o f G can be partitioned into two parts, forming a spanning tree o f G - s b and G - tb, respectively. Consider the Sbt b) -bi.polar orientation of G b and the Swtw) -bi.polar orientation of Gw constructed in the previous section. I ~ m m a 4.2. A n ordering v 1 = Sb, V2, U3..... Un = tb o f the vertex set o f G exists, wht.ch t.s co.mpa.ttble wtth the above Sbt b ) - and Swtw~ -bz. polar on.entatt.ons and satisfies the condition that every vi (1 < i < n) is adjacent to at least one larger and one smaller element. Proof. As in the previous section, assign to every vertex v ~ V ( G ) a vertical or horizontal segment with endpoints (xl(v), y l ( v ) ) and (x2(v), y2(v)), where x l ( v ) <_ x2(v), y l ( v ) <_y2(v). For any pair o f adjacent vertices v, v' ~ V ( G ) different from s b and t u, let v <_ v' if and only if x2(v) < x~(v') or y2(v) < y l ( v ' ) . Furthermore, let s b be smaller and let t b be larger than any other element of V(G). It is not hard to check that this relation defines a partial order on V ( G ) compatible with the partial orders on V(G b) and V(Gw) induced by the corresponding bipolar orientations. Therefore, these three relations have a c o m m o n extension into a total order of V(G). (It can also be shown that this total order is uniquely determined.) [] Now we can finish the proof o f Corollary 4.1 as follows. For any black vertex vi ~ V(Gb), let S/ denote the vertical segment whose endpoints are (i, min~,~. ~ c J) and (i, maxv,~j~ ~ j). For any white vertex vj ~ V(Gw), let Sj denote the horizontal segment with endpoints (min~,v,~c i , j ) and (max,. ~,~a i , j ) . Clearly, two such segments touch each other if and only if the corresi~onding vertices are adjacent. Moreover, by L e m m a 4.2, every segment S i (1 < i < n) will cross the line y = x. Color every edge vic). ~ G by red or green according to whether the point of incidence of Si and Sj lies above or below the line y = x. Then the red and green edges form a spanning tree of G - v 1 and G - Vn, respectively. This completes the p r o o f of Corollary 4.1. Assume that there is an enumeration vl , v 2 , . . . , v, of the vertices of a graph G and a coloring of its edges with c colors such that each color class can be "drawn on a page," that is, there are no two edges of the same color, vhvj and UiUk, with h < i < j < k. The smallest number c for which such a representation exists is called the page number of G. Notice that the total order of V ( G ) described in L e m m a 4.2 and the r e d - g r e e n coloring defined above also yield the following result. Corollary 4.3. The page number o f any quadrilateralization G is at most two. Moreover, the edges o f G can always be drawn on two pages so that each page contains a tree. [DLR] G. DiBattista, W. P. Liu, and I. Rival: Bipartite graphs, drawings and planarity , Inform. Process. Lett. 36 ( 1990 ), 317 - 322 . [Z] J. Ebert : st-ordering of the vertices of biconnected graphs , Computing 30 ( 1983 ), 19 - 33 . [EET] G. Ehrlich , S. Even , and R. E. Tarjan : Intersection graphs of curves on the plane , J. Combin. Theory Ser. B 21 ( 1976 ), 8 - 20 . [ET] S. Even and R. E. Tarjan : Computing an st-numbering , Theoret. Comput. Sci. 2 ( 1976 ), 339 - 344 . [FMP] H. de Fraysseix , P. O. de Mendez, and J. Pach : Representation of planar graphs by segments, in: Intuitive Geometry (K. B6r6czky and G. Fejes T6th, eds.), Colloquia Mathematica Societatis J. Bolyai , North-Holland, Amsterdam, to appear. [FPP] H. De Fraysseix , J. Pach , and R. Pollack : How to draw a planar graph on a grid , Combinatorica 10 ( 1990 ), 41 - 51 . [FRU] S. F61des , I. Rival, and J. Urrutia: Light sources, obstructions and spherical orders , Discrete Math. 102 ( 1992 ), 13 - 23 . [HNZ] I. B.-A. Hartman , I. Newman , and R. Ziv : On grid intersection graphs , Discrete Math. 87 ( 1991 ), 41 - 52 . [LEC] A. Lempel , S. Even , and I. Cederbaum: An algorithm for planarity testing of graphs, in: Theory o f Graphs (Internat . Syrup., Rome, July 1966 , P. Rosenstiehl, ed.), Gordon and Breach , New York, 1967 , pp. 215 - 232 . [OW] R. H. J. M. Otten and J. G. van Wijk : Graph representations in interactive layout design , Proc. IEEE Internat. Symp. on Circuits and Systems , 1978 , pp. 914 - 918 . [P1] V. Petrovi6: Decomposition of some planar graphs into trees , Proc. Internat. Conf. on Combinatorics, Keszthely , 1993 , p. 48 . [P2] C. R. Platt : Planar lattices and planar graphs , J. Combin. Theory Ser. B 21 ( 1976 ), 30 - 39 . JR1] G. Ringel: Two trees in maximal planar bipartite graphs , J. Graph Theory 17 ( 1993 ), 755 - 758 . [R2] I. Rival : Graphical data structures for ordered sets , in: Algorithms and Order (I. Rival , ed.), NATO ASI Series C , Vol. 255 , Kluwer, Dordrecht, 1989 . [R3] P. Rosenstiehl : Embedding in the plane with orientation constraints: the angle graph , Ann. N.Y. Acad. Sei. 1983 , pp. 340 - 346 . [RT] P. Rosentiehl and R. E. Tarjan : Rectilinear planar layouts and bipolar orientations of planar graphs, Discrete Comput . Geom. 1 ( 1986 ), 343 - 353 . IT1] R. Tamassia : A dynamic data structure for planar graph embedding, in: Automata, Languages and Programming (T. Lepist6 and A . Salomaa, eds.), Lecture Notes in Computer Science , Vol. 317 , Springer-Verlag, Berlin, 1988 , pp. 576 - 590 . [T] ? I] R. Tamassia and I. G. Tollis: A unified approach to visibility representations of planar graphs, Discrete Comput . Geom. 1 ( 1986 ), 321 - 341 . [TIE] R. Tamassia and I. G. Tollis: Centipede graphs and visibility on a cylinder, in: GraphTheoretic Concepts in Computer Science (G. Tinhofer and G. Schmidt, eds.), Lecture Notes in Computer Science , Vol. 246 , Springer-Verlag, Berlin, 1987 , pp. 252 - 263 . [Tr3] R. Tamassia and I. G. Tollis: Tessellation representations of planar graphs , Proc. 27th AUerton Conf. on Communications, Control, and Computing , 1989 , pp. 48 - 57 . [T2] R. E. Tarjan: Two streamlined depth-first search algorithms , Fund. Inform. 9 ( 1986 ), 85 - 94 . [W] H. Whitney: On the classification of graphs, Amer . J. Math. 55 ( 1933 ), 236 - 244 .

This is a preview of a remote PDF: https://link.springer.com/content/pdf/10.1007%2FBF02574056.pdf

H. de Fraysseix, P. O. de Mendez, J. Pach. A left-first search algorithm for planar graphs, Discrete & Computational Geometry, 1995, 459-468, DOI: 10.1007/BF02574056