⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 完全由C语言实现的图的相关操作
💻 C
字号:
#include "head.h" 
#include "stdafx.h"
int main()
{ 
  /*int** P;
  int* D;
  int i,k; 
  int*** T; 
  trid_tree* root =(trid_tree*)  malloc(sizeof(trid_tree)); 
  
 MGraph* G = (MGraph* ) malloc(sizeof(MGraph));
 init_trid_tree(root); 
 GreateGraph(G);
  P=(int**) malloc(G->vexnum*sizeof(int*)) ;
  for(i=0;i<G->vexnum;i++)
   P[i]=(int*) malloc(G->vexnum*sizeof(int)) ; 
   D=(int*) malloc(G->vexnum*sizeof(int)) ; 
   
    T =(int***)malloc(G->vexnum*sizeof(int**)) ; 
   for(i=0;i<G->vexnum;i++)
   {   T[i]=(int**) malloc(G->vexnum*sizeof(int*)) ; 
      for(k=0;k<G->vexnum;k++) 
      T[i][k] =(int*)  malloc(G->vexnum*sizeof(int)) ;                
   } 
  
   //
  
      
 //ShortestPath_DIJ( G,0, P, D);

 printf("hfksah\n"); 
  ShortestPath_FLOYD( G,T,P); 
 for(i=0;i<G->vexnum;i++)
 {
   printf("\n");
   for(k=0;k<G->vexnum;k++)
   printf("%d ",P[i][k]);                        
 } 
 
 free(G);
 free(D);
 for(i=0;i<G->vexnum;i++) 
 free(P[i]) ;
 free(P); 
  for(i=0;i<G->vexnum;i++)
   {   
      for(k=0;k<G->vexnum;k++) 
      free(T[i][k]);
      free(T[i]);                
   } 
   free(T); 
   free(root); 
   getchar(); 
 
   int i; 
    int* e=(int*) malloc(sizeof(int));
   LinkQueue* Q=( LinkQueue*) malloc( sizeof(LinkQueue));
	InitQueue(Q);
    for( i=1;i<7;i++)
    EnQueue(Q,i);
   
    for( i=1;i<7;i++)
    {
        DeQueue( Q, e);
        printf("%d ",*e); 
    }DestroyQueue(Q);
   free(Q); 
    
   Edge* h; 
    priority_queue* t = ( priority_queue*) malloc(sizeof( priority_queue));
    init_priority_queue(t);
   insert_priority_queue(t,IninEdge(h,1,1,20));
   insert_priority_queue(t,IninEdge(h,1,1,24));
   insert_priority_queue(t,IninEdge(h,1,1,10));
   insert_priority_queue(t,IninEdge(h,1,1,60));
   printf("%d\n",Get_Min(t)->weight); 
   
    h= extract_min(t); 
    printf("%d\n",h->weight); 
    free(h);
     h= extract_min(t); 
    printf("%d\n",h->weight); 
    free(h);
    h= extract_min(t); 
    printf("%d\n",h->weight); 
    free(h);
   
    
    insert_priority_queue(t,IninEdge(h,1,1,20)); 
    insert_priority_queue(t,IninEdge(h,1,1,10));
     h= extract_min(t); 
    printf("%d\n",h->weight); 
    free(h);
     h= extract_min(t); 
    printf("%d\n",h->weight); 
    free(h);
    
    
     int* t = (int*) malloc(sizeof(int));
     int i; 
     stack* s = (stack*) malloc(sizeof(stack));
     
    InitStack(s);
    for( i=0;i<10;i++)
    Push(s,i);    printf("\n"); 
    StackTraverse(s);
    printf("\n"); 
    printf("StackLength=%d\n",StackLength(s)); 
    while(!StackEmpty(s))
    { 
      Pop(s,t);
      printf("%d ",*t);
    } */ 
    extern trid_tree* T;
    CSTree* q; 
    char s[20]="a"; 
    ALGraph* G = (ALGraph*) malloc(sizeof(ALGraph)) ;
    int visited[50]; 
    initALGraph( G); 
    DFSTraverse(G,visited);
    
    BFSTraverse( G, visited);
    printf("\ncount_connect"); 
    //count_connect( G);
     
    MiniSpanTree_PRIM(G,s); 
    printf("\n"); 
    MiniSpanTree_Kruskal(G);
    printf("\nFindArticul="); 
    FindArticul(G); 
    printf("\nTopologicalSort="); 
    TopologicalSort(G);
    printf("\nCriticalPath="); 
    CriticalPath(G);
    DFSForest(G, q); 
    printf("\nForestTraverse=");  
    ForestTraverse(q) ; 
    free(G);
  getchar(); 
 return 0;    
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -