home *** CD-ROM | disk | FTP | other *** search
/ cs.rhul.ac.uk / www.cs.rhul.ac.uk.zip / www.cs.rhul.ac.uk / pub / rdp / rdp_cs3470.tar / rdp_supp / graph.h < prev    next >
C/C++ Source or Header  |  1998-05-07  |  2KB  |  60 lines

  1. /*******************************************************************************
  2. *
  3. * RDP release 1.50 by Adrian Johnstone (A.Johnstone@rhbnc.ac.uk) 20 December 1997
  4. *
  5. * graph.h - graph creation and manipulation routines
  6. *
  7. * This file may be freely distributed. Please mail improvements to the author.
  8. *
  9. *******************************************************************************/
  10. #ifndef GRAPH_H
  11. #define GRAPH_H
  12.  
  13. #include <stddef.h>
  14. #include <stdio.h>
  15.  
  16. int graph_compare_double(void * left, void * right); 
  17. int graph_compare_long(void * left, void * right); 
  18. int graph_compare_mem(void * left, void * right, size_t size); 
  19. int graph_compare_string(void * left, void * right); 
  20.  
  21. void graph_delete_edge(void * edge); 
  22. void graph_delete_graph(void * graph); 
  23. void graph_delete_node(void * node); 
  24.  
  25. unsigned long graph_get_atom_number(const void * graph_or_node_or_edge); 
  26. void * graph_get_edge_target(const void * edge); 
  27. void * graph_get_final_edge(const void * node_or_edge); 
  28. void * graph_get_final_node(const void * node_or_edge); 
  29. void * graph_get_next_edge(const void * node_or_edge); 
  30. void * graph_get_next_node(const void * graph_or_node); 
  31. void * graph_get_previous_edge(const void * node_or_edge); 
  32. void * graph_get_previous_node(const void * node_or_edge); 
  33.  
  34. unsigned graph_hash_double(unsigned hash_prime, void * data); 
  35. unsigned graph_hash_long(unsigned hash_prime, void * data); 
  36. unsigned graph_hash_mem(unsigned hash_prime, void * data); 
  37. unsigned graph_hash_string(unsigned hash_prime, void * data); 
  38.  
  39. void * graph_insert_node_child(size_t node_size, size_t edge_size, void * parent_node); 
  40. void * graph_insert_node_parent(size_t node_size, size_t edge_size, void * child_node); 
  41. void * graph_insert_edge(size_t size, void * target_node, void * node_or_edge); 
  42. void * graph_insert_graph(char * id); 
  43. void * graph_insert_node(size_t size, void * node_or_graph); 
  44.  
  45. void graph_vcg(void * graph, 
  46. void(* graph_action)(const void * graph), 
  47. void(* node_action)(const void * node), 
  48. void(* edge_action)(const void * edge)
  49. ); 
  50. void graph_vcg_atoms(void * graph, 
  51. void(* graph_action)(const void * graph), 
  52. void(* node_action)(const void * node), 
  53. void(* edge_action)(const void * edge)
  54. ); 
  55.  
  56.  
  57. #endif
  58.  
  59. /* End of graph.h */
  60.