void GRAPHshow(Graph G)
  { int i, dx, dy; link t;
    printf("%%!\n");
    printf("36 36 translate .5 setlinewidth\n");
    printf("/pt { 2 copy gsave newpath 1 0 360 arc fill grestore } def\n");
    printf("/pt { } def\n");
    printf("/MM { 14 div exch 18 div exch pt moveto } def\n");
    printf("/LL { 14 div exch 18 div exch pt lineto stroke } def\n");
    for (i = 0; i < G->V; i++)
      {
        for (t = G->adj[i]; t != NULL; t = t->next)
          {
            dx = G->pos[i].x - G->pos[t->v].x;
            dy = G->pos[i].y - G->pos[t->v].y;
            if (dx*dx + dy*dy > 0) 
              printf("%6d %6d MM %6d %6d LL\n", 
                G->pos[i].x, G->pos[i].y,
                G->pos[t->v].x, G->pos[t->v].y);
          }
      }
    printf("showpage\n");
  }

