This is the second volume of a two volume collection on Structural Complexity. This volume assumes as a prerequisite knowledge about the topics treated in Volume I, but the present volume itself is nearly self-contained. As in Volume I, each chapter of this book ends with a section entitled "Bibliographical Remarks", in which the relevant references for the chapter are briefly commented upon. These sections might also be of interest to those wanting an overview of the evolution of the field, as well as relevant related results which are not included in the text. Each chapter includes a section of exercises. The reader is encouraged to spend some time on them. Some results presented as exercises are occasionally used later in the text. A reference is provided for the most interesting and for the most useful exercises. Some exercises are marked with a • to indicate that, to the best knowledge of the authors, the solution has a certain degree of difficulty. Many topics from the field of Structural Complexity are not treated in depth, or not treated at all. The authors bear all responsibility for the choice of topics, which has been made based on the interest of the authors on each topic. Many friends and colleagues have made suggestions or corrections. In partic ular we would like to express our gratitude to Richard Beigel, Ron Book, Rafael Casas, Jozef Gruska, Uwe Schoning, Pekka Orponen, and Osamu Watanabe.