Computing Prüfer codes efficiently in parallel

A Prüfer code of a labeled free tree with n nodes is a sequence of length n−2 constructed by the following sequential process: for i ranging from 1 to n−2 insert the label of the neighbor of the smallest remaining leaf into the ith position of the sequence, and then delete the leaf. Prüfer codes pro...

Full description

Saved in:
Bibliographic Details
Published in:Discrete Applied Mathematics Vol. 102; no. 3; pp. 205 - 222
Main Authors: Greenlaw, Raymond, Petreschi, Rossella
Format: Journal Article
Language:English
Published: Lausanne Elsevier B.V 15.06.2000
Amsterdam Elsevier
New York, NY
Subjects:
ISSN:0166-218X, 1872-6771
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:A Prüfer code of a labeled free tree with n nodes is a sequence of length n−2 constructed by the following sequential process: for i ranging from 1 to n−2 insert the label of the neighbor of the smallest remaining leaf into the ith position of the sequence, and then delete the leaf. Prüfer codes provide an alternative to the usual representation of trees. We present an optimal O( log n) time, n/ log n processor EREW-PRAM algorithm for determining the Prüfer code of an n-node labeled chain and an O( log n) time, n processor EREW-PRAM algorithm for constructing the Prüfer code of an n-node labeled free tree. This resolves an open question posed by Wang et al. (IEEE Trans. Parallel Distributed Systems 8 (12) (1997) 1236–1240).
ISSN:0166-218X
1872-6771
DOI:10.1016/S0166-218X(99)00221-8