拓扑 排序 C语言 算法

  • h8_740404
    了解作者
  • 158.9KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-29 06:19
    上传日期
拓扑 排序 C语言 算法 拓扑 排序 C语言 算法 绝对可以 欢迎下载
拓扑_sort.rar
  • 拓扑_sort
  • Debug
  • vc60.pdb
    44KB
  • tuopu_sort.exe
    164.1KB
  • tuopu_sort.ilk
    168.8KB
  • 1.obj
    7.6KB
  • vc60.idb
    33KB
  • tuopu_sort.pdb
    337KB
  • tuopu_sort.pch
    221.1KB
  • tuopu_sort.ncb
    33KB
  • tuopu_sort.plg
    1.5KB
  • tuopu_sort.opt
    47.5KB
  • tuopu_sort.dsp
    4.2KB
  • tuopu_sort.dsw
    545B
  • 1.cpp
    1.5KB
内容介绍
#include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct node{ int adjvex; struct node *next; }EdgeNode; typedef struct vnode{ int id; EdgeNode *link; }vnode,Adjlist[100]; typedef Adjlist LGraph; typedef struct snode{ int data; struct snode *next; }Link_Stack; Link_Stack *top,*s; void Push(Link_Stack **top,int x){ s=(Link_Stack*)malloc(sizeof(Link_Stack)); s->data=x; s->next=(*top)->next; (*top)->next=s;} void GetTop(Link_Stack **top,int *x){ s=(*top)->next; *x=s->data; (*top)->next=s->next; free(s);} int CreatGraph(LGraph gl){ int m,n,i=0,c,d; EdgeNode *p; printf("input start.\n"); printf("please input how many vertex there had?\n",i); scanf("\n%d",&c); for(i=0;i<c;i++){ gl[i].link=NULL; gl[i].id=0;} printf("please input EdgeNodes number?"); scanf("%d",&d); for(i=0;i<d;i++){ printf("\nplease input Vi&Vj:="); scanf("\n%d,%d",&m,&n); if((m>=0)&&(m<c)&&(n>=0)&&(n<c)){ p=(EdgeNode*)malloc(sizeof(EdgeNode)); p->adjvex=n; p->next=gl[m].link; gl[m].link=p; gl[n].id++;}} return c;} void TopuSort(LGraph G,int n){ int i,j,m=0; EdgeNode *p; top=(Link_Stack*)malloc(sizeof(Link_Stack)); top->next=NULL; for(i=0;i<n;i++) if(G[i].id==0) Push(&top,i); while(top->next!=NULL){ GetTop(&top,&i); printf(" %d ",i); m++; p=G[i].link; while(p){ j=p->adjvex; G[j].id--; if(G[j].id==0) Push(&top,j); p=p->next;}} if(m<n) printf("The Graph has a cycle!!!\n");} main(){ LGraph GL; TopuSort(GL,CreatGraph(GL));}
评论
    相关推荐
    • C语言算法
      C语言算法集 第一章 适合初学算法和计算机编程的学生
    • C语言 算法
      很多例子与介绍,有助于理解算法深意
    • c语言算法书籍
      c语言算法书籍
    • c语言算法大全
      c语言入门算法大全,对于新手学习c语言特别的有帮助
    • C语言算法
      C语言算法C语言算法
    • c语言算法
      很不错的软件设计者学习的基础算法.c语言
    • 椭圆C语言算法
      图形学课要求的椭圆扫描线算法#include #include #include #include #include "stdefine.h" void Ellipse(int xo, int yo, int a, int b) { BOOL flag = FALSE; int x; int y; long aa; long bb; long d;...
    • 经典c语言算法
      介绍了一些经典的算法,优化程序,提高效率,清晰思路。
    • c语言算法
      算法c语言,有很多,减压看
    • GaussDB_100_1.0.1-DATABASE-REDHAT-64bit.tar.gz
      guassdb100在redhat上安装包,单机部署的包,安装步骤请看我的文中介绍,经过大量实验搭建总结出来的文档