Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

Graph algorithms = iteration + data structures?

The structure of graph algorithms and a corresponding style of programming

  • Conference paper
  • First Online:
Graph-Theoretic Concepts in Computer Science (WG 1992)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 657))

Included in the following conference series:

Abstract

We encourage a specific view of graph algorithms, which can be paraphrased by “iterate over the graph elements in a specific order and perform computations in each step”. Data structures will be used to define the processing order, and we will introduce recursive mapping/array definitions as a vehicle for specifying the desired computations. Being concerned with the problem of implementing graph algorithms, we outline the extension of a functional programming language by graph types and operations. In particular, we explicate an exploration operator that essentially embodies the proposed view of algorithms. Fortunately, the resulting specifications of algorithms, in addition to being compact and declarative, are expected to have an almost as efficient implementation as their imperative counterparts.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Barth, P.S., Nikhil, R.S., Arvind: M-Structures: Extending a Parallel, Non-strict, Functional Language with State, Functional Programming and Computer Architecture, LNCS 523, Springer-Verlag 1991, 538–566.

    Google Scholar 

  2. Buckley, F., Harary, F.: Distance in Graphs, Addison-Wesley, 1989.

    Google Scholar 

  3. Cruz, I.F., Mendelzon, A.O., Wood, P.T.: G+: Recursive Queries Without Recursion, Proc. 2nd Int. Conf. on Expert Database Systems, 1988, 645–666.

    Google Scholar 

  4. Ebert, J.: Effiziente Graphenalgorithmen, Akademische Verlagsgesellschaft, 1981.

    Google Scholar 

  5. Bird, R., Wadler, P.: Introduction to Functional Programming, Prentice Hall, 1988.

    Google Scholar 

  6. Hudak, P.: Arrays, Non-Determinism, Side-Effects, and Parallelism: A Functional Perspective, Proc. Workshop on Graph Reduction, LNCS 279, Springer-Verlag 1986, 312–327.

    Google Scholar 

  7. Hudak, P.: Conceptions, Evolution, and Application of Functional Programming Languages, ACM Computing Surveys, Vol. 21, No. 3, 1989, 359–411.

    Google Scholar 

  8. Kashiwagi, Y., Wise, D.S.: Graph Algorithms in a Lazy Functional Programming Language, Proc. 4th Int. Symp. on Lucid and Intensional Programming, 1991, 35–46.

    Google Scholar 

  9. Mehlhorn, K.: Data Structures and Algorithms 2: Graph Algorithms and NP-Completeness, Springer-Verlag 1984.

    Google Scholar 

  10. Nagl, M.: GRAPL-A Programming Language for Handling Dynamic Problems on Graphs, Proc. 5th Int. Workshop on Graph Theoretic Concepts in Computer Science, Hanser Verlag 1979, 25–45.

    Google Scholar 

  11. Pape, U.: Graphen-Sprachen — Eine Übersicht, Proc. 1st Int. Workshop on Graph Theoretic Concepts in Computer Science, Hanser Verlag 1975, 11–27.

    Google Scholar 

  12. Pape, U.: GRAMAS — A Graph Manipulation System, Proc. 5th Int. Workshop on Graph Theoretic Concepts in Computer Science, Hanser Verlag 1979, 47–63.

    Google Scholar 

  13. Schwartz, J.T., Dewar, R.B.K., Dubinsky, E., Schonberg, E.: Programming with Sets — An Introduction to SETL, Springer-Verlag, 1986.

    Google Scholar 

  14. Sharir, M.: A Strong-Connectivity Algorithm and its Application in Data Flow Analysis, Computers and Mathematics with Applications 7, No. 1, 1981, 67–72.

    Google Scholar 

  15. Steele, G.L. Jr. and Hillis, D.W.: Connection Machine Lisp: Fine-Grained Parallel Symbolic Processing, ACM Conf. on Lisp and Functional Programming, 1986, 279–297.

    Google Scholar 

  16. Tarjan, R.E.: Data Structures and Network Algorithms, SIAM, 1983.

    Google Scholar 

  17. Turner, D. A.: Miranda: A Non-strict Functional Language with Polymorphic Types, Functional Programming and Computer Architecture, LNCS 201, Springer-Verlag 1985, 1–16.

    Google Scholar 

  18. Wadler, P.: A New Array Operation, Proc. Workshop on Graph Reduction, LNCS 279, Springer-Verlag 1986, 328–335.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Ernst W. Mayr

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Erwig, M. (1993). Graph algorithms = iteration + data structures?. In: Mayr, E.W. (eds) Graph-Theoretic Concepts in Computer Science. WG 1992. Lecture Notes in Computer Science, vol 657. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-56402-0_54

Download citation

  • DOI: https://doi.org/10.1007/3-540-56402-0_54

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-56402-7

  • Online ISBN: 978-3-540-47554-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics