# PL/I Algorithms PL/1 The main algorithms in "Introduction to PL/I, Algorithms, and Structured Programming", by R. A. Vowels (Melbourne, 1997), 731 pages, ISBN 0-9596384-9-0 are given below. . Sorting: Cocktail-Shaker, Double Bubble, Shell, Heap, Hash, Quicksort. . Graphics: Space-filling Curves: Sierpinski curves, Hilbert curves, Dragon curves, & Wirth curves. Wire-frame picture generation: Scaphites shell, chalice, Xylem. Fractals: Mandelbrot set, Julia set. Writing out color and black-and-white PCX files, color TIFF files. Reading PCX files, printing a color PCX file on a color printer. . Linked Lists: One-way linked lists, circular lists, two-way linked lists, red-black binary trees, including searching, insertion, deletion, rotation; algebraic expressions and trees. . Complex arithmetic: electrical circuits, FFT of real, sine, cosine functions, real and complex roots of a polynomial. . Text processing: Text editor, converting plain text to HTML. String searching: classic, Knuth-Morris-Pratt, Boyer-Moore, Rabin-Karp, Baeza-Yates-Gonnet, Approximate String search (Baeza-Yates-Perleberg). . Searching: Binary, Hash, Hash with Quadratic search. . Numerical Methods: Integration: Rectangle Method, Trapezoidal method, Simpson's Rule, Romberg; Differentiation, roots of an equation (Newton-Raphson method), Interpolation, Euler's method and Runga-Kutta methods for solving a Differential Equation, plotting a function and producing a PCX file. Real and Complex roots of a polynomial; Simultaneous equations: Gauss elimination, Gauss-Siedel iteration, tri-diagonal equations, banded equations, sparse matrices, matrix inversion. . Miscellaneous: Transitive closure . 25 December 1999