GraphTest.c
上传用户:hbxtsdjs
上传日期:2022-04-11
资源大小:1594k
文件大小:1k
源码类别:

电子书籍

开发平台:

C/C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <malloc.h>
  4. typedef char DataType;
  5. #define MaxVertices 100
  6. #include "AdjLGraph.h"
  7. typedef struct
  8. {
  9. int row;
  10. int col;
  11. } RowCol;
  12. void CreatGraph(AdjLGraph *G, DataType v[], int n, RowCol d[], int e)
  13. {
  14. int i, k;
  15. AdjInitiate(G);
  16. for(i = 0; i < n; i++) InsertVertex(G, i, v[i]);
  17. for(k = 0; k < e; k++) InsertEdge(G, d[k].row, d[k].col);
  18. }
  19. void main(void)
  20. {
  21. AdjLGraph g;
  22. char a[] = {'A','B','C','D','E'};
  23. RowCol rc[] = {{0,1},{1,3},{3,2},{2,1},{0,4}};
  24. int i, n = 5, e = 5;
  25. Edge *p;
  26. CreatGraph(&g, a, n, rc, e);
  27. printf("%d   %dn", g.numOfVerts, g.numOfEdges);
  28. for(i = 0; i < g.numOfVerts; i++)
  29. {
  30. printf("%c   ", g.a[i].data);
  31. p = g.a[i].adj;
  32. while(p != NULL) 
  33. {
  34. printf("%d   ", p->dest);
  35. p = p->next;
  36. }
  37. printf("n");
  38. }
  39. DeleteEdge(&g, 1, 3);
  40. printf("%d   %dn", g.numOfVerts, g.numOfEdges);
  41. for(i = 0; i < g.numOfVerts; i++)
  42. {
  43. printf("%c   ", g.a[i].data);
  44. p = g.a[i].adj;
  45. while(p != NULL) 
  46. {
  47. printf("%d   ", p->dest);
  48. p = p->next;
  49. }
  50. printf("n");
  51. }
  52. AdjDestroy(&g);
  53. }