亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? topologicalsort.cpp

?? 清華大學(xué)嚴(yán)蔚敏編著《數(shù)據(jù)結(jié)構(gòu)(c語言版)》源程序
?? CPP
字號(hào):
//TopologicalSort.cpp

# include <iostream.h>
# include <malloc.h>
# include <conio.h>
# include <stdio.h>

# define MAX_VERTEX_NUM 20
# define ERROR 0
# define OK 1
# define YES 1
# define NO 0
# define STACK_INIT_SIZE 100
# define STACKINCREMENT 10
# define  SElemType int

typedef int VertexType;
typedef int InfoType;
typedef struct ArcNode
{  int adjvex;
   struct ArcNode *nextarc;
   InfoType *info;
}ArcNode;

typedef struct 
{  VertexType data;
   ArcNode *firstarc;
}VNode,AdjList[MAX_VERTEX_NUM];

typedef struct
{  AdjList vertices;
   int vexnum,arcnum;
   int kind;
}ALGraph;

typedef struct 
{    SElemType *base;
     SElemType *top;
     int stacksize;
}SqStack;

int InitStack(SqStack &S)                      //InitStack() function
{   S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));
    if(!S.base)
    {    cout<<endl<<"Allocate space failure !";
	     return(ERROR);
    }
    S.top=S.base;
    S.stacksize=STACK_INIT_SIZE;
    return(OK);
}//end of InitStack() funtion

int Push(SqStack &S,SElemType e)	            //Push() function 
{   if(S.top-S.base>S.stacksize)
    {    S.base=(SElemType *)realloc(S.base,(S.stacksize+
		       STACKINCREMENT*sizeof(SElemType)));
	 if(!S.base)
	 {   cout<<endl<<"Overflow!";
	     return(ERROR);
	 }//end of if(!S.base)
	 S.top=S.base+S.stacksize;
	 S.stacksize+=STACKINCREMENT;
    }//end of if
    *S.top++=e;
    return(OK);
}//end of Push() function

int Pop(SqStack &S,SElemType &e)	            //Pop() function
{    if(S.top==S.base)
     {    cout<<endl<<"It's a empty SqStack!";
	  return(ERROR);
     }
     e=*--S.top;
     return(OK);
}//end of Pop() function

int StackEmpty(SqStack S)                       //StackEmpty() function      
{//judge Stack S is empty or not
	if(S.top==S.base) return (YES);
	else return(NO);
}//end of StackEmpty

int CreateDG(ALGraph &G)                        //CreateDG() function
{  int IncInfo,i,j,k,Vi,Vj;
   ArcNode *p;
   cout<<"Please input the number of G.vexnum: (eg. G.vexnum=4)   ";
   cin>>G.vexnum;
   cout<<"Please input the number of G.arcnum: (eg. G.arcnum=4)   ";
   cin>>G.arcnum;
   cout<<"Please input the number of IncInfo(0 for none):   ";
   cin>>IncInfo;
   for(i=0;i<G.vexnum;++i)
       { G.vertices[i].data=i;
	     G.vertices[i].firstarc=NULL;
       }//end of for
   cout<<endl<<"For example (Vi->Vj): Vi=1,Vj=2; Vi=1,Vj=3; Vi=3,Vj=4; Vi=1,Vj=4 ...";
   for(k=0;k<G.arcnum;++k)
   {  
	  cout<<endl<<"Please input the "<<k+1<<"th arc's Vi:   ";        
      cin>>Vi;
      cout<<"Please input the "<<k+1<<"th arc's Vj:   ";
      cin>>Vj;
      i=Vi;
      j=Vj;
      while(i<1||i>G.vexnum||j<1||j>G.vexnum)
       {  cout<<endl<<"Please input the "<<k+2<<"the arc's Vi:   ";
	  cin>>Vi;
	  cout<<"Please input the "<<k+2<<"the arc's Vj:   ";
	  cin>>Vj;
	  i=Vi;
	  j=Vj;
       }//end of while
	  i=i-1;
      j=j-1;
       p=(ArcNode *)malloc(sizeof(ArcNode));
       if(!p)
       {  cout<<"Overflow!";
	      return (ERROR);
       }//end of if(!p)
       p->adjvex=j;
       p->nextarc=G.vertices[i].firstarc;
       p->info=NULL;
       G.vertices[i].firstarc=p;
       if(IncInfo)
	  {  cout<<"Please input the info :";
	     cin>>*(p->info);
	  }//end of if(IncInfo)
   }//end of if
   return (OK);
}//end of CreateDG() function

void FindInDegree(ALGraph G,int *indegree)       //FindInDegree() function
{//indegree is a array name 
   int i;
   for(i=0;i<G.vexnum;i++)
	   indegree[i]=0;
   for(i=0;i<G.vexnum;i++)
       while(G.vertices[i].firstarc)
	   {  indegree[G.vertices[i].firstarc->adjvex]++;
	      G.vertices[i].firstarc=G.vertices[i].firstarc->nextarc;
	   } //end of while 
}//end of FindInDegree() function

int ToplogicalSort(ALGraph G)                    //ToplogicalSort() function
{
	int indegree[MAX_VERTEX_NUM],i,k,count;
	ArcNode *p;
	SqStack S;
	FindInDegree(G,indegree);                    //Find indegree of node[0...vexnum-1]
	InitStack(S);
	for(i=0;i<G.vexnum;++i)                      //create Stack S for 0 indegree node
		 if(!indegree[i]) Push(S,i);
	count=0;
	printf("The Sorted node are:  ");
	while(!StackEmpty(S))
	{   Pop(S,i);
	    printf(" %d ",G.vertices[i].data+1);     //output the i node  
		++count;
		for(p=G.vertices[i].firstarc;p;p=p->nextarc)
		{  k=p->adjvex;
		   if(!(--indegree[k]))  Push(S,k);
		}//end of for
	}//end of while
	if (count<G.vexnum)  return (ERROR);
	else return (OK);
}//end of ToptlogicalSort() function

void main()                                      //main() function
{  ALGraph G;
   cout<<"ToplogicalSort.cpp"<<endl<<"=================="<<endl<<endl;
   if(CreateDG(G))
      cout<<endl<<"Create ALGraph success !"<<endl;
   if(ToplogicalSort(G)) cout<<endl<<"...OK!..."<<endl;
   else cout<<endl<<"Error,it has loop!"<<endl;
   getch();
}//end of main() function

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av一区二区久久| 日韩和欧美的一区| 99久久国产综合精品麻豆| 国产欧美一区二区精品久导航 | 高清在线观看日韩| 国产婷婷色一区二区三区四区| 国产美女在线精品| 国产精品国产三级国产普通话蜜臀 | 国产精品亚洲专一区二区三区| 欧美一级专区免费大片| 老司机午夜精品99久久| 26uuuu精品一区二区| 国产精品888| 国产精品久久久久影视| 欧美专区亚洲专区| 日韩高清电影一区| 久久久精品欧美丰满| a美女胸又www黄视频久久| 亚洲欧美日韩一区二区 | 国产精品国产自产拍高清av王其| 91视视频在线直接观看在线看网页在线看| 国产精品高潮呻吟久久| 欧美午夜寂寞影院| 国模一区二区三区白浆| 亚洲婷婷国产精品电影人久久| 欧美三级视频在线观看| 国产美女av一区二区三区| 中文字幕永久在线不卡| 欧美人与性动xxxx| 豆国产96在线|亚洲| 亚洲一区二区三区在线看| 欧美一卡在线观看| 91麻豆精品一区二区三区| 日韩电影在线观看电影| 亚洲欧洲精品天堂一级| 欧美一级高清片| 91影院在线免费观看| 久久成人久久爱| 亚洲精品国产一区二区精华液| 精品免费一区二区三区| 日本韩国欧美国产| 极品美女销魂一区二区三区| 亚洲色图在线播放| 久久精品在线观看| 欧美日韩精品一区二区三区蜜桃| 国产91精品一区二区麻豆网站 | 国产欧美一区二区三区在线看蜜臀 | 亚洲主播在线播放| 国产视频一区在线播放| 欧美一激情一区二区三区| 成人激情开心网| 青青草原综合久久大伊人精品 | 精品国产网站在线观看| 91国偷自产一区二区三区观看| 精品亚洲国产成人av制服丝袜| 一区二区三区四区国产精品| 国产日韩欧美一区二区三区综合| 欧美日韩亚洲综合一区二区三区| 成人激情免费网站| 精品一区二区免费| 亚洲bt欧美bt精品777| 亚洲视频小说图片| 国产亚洲综合av| 精品免费视频.| 日韩一区二区三区免费看| 欧美色综合天天久久综合精品| 成人黄色在线网站| 国产精品综合一区二区| 久久国产精品第一页| 天堂成人国产精品一区| 亚洲综合丁香婷婷六月香| 中文字幕在线不卡一区| 中文字幕精品—区二区四季| 久久亚洲一级片| 精品久久人人做人人爰| 91麻豆精品国产| 宅男噜噜噜66一区二区66| 欧美日韩亚洲综合一区| 日本乱码高清不卡字幕| 91久久精品一区二区| 日本福利一区二区| 欧美性大战xxxxx久久久| 91黄色激情网站| 欧美日韩国产免费| 欧美福利视频一区| 555www色欧美视频| 欧美一级淫片007| 精品国产青草久久久久福利| 精品黑人一区二区三区久久| 欧美精品一区二区三区在线播放| 精品国产三级a在线观看| 国产亚洲欧美一区在线观看| 国产精品免费丝袜| 最新不卡av在线| 亚洲午夜在线观看视频在线| 视频一区在线视频| 久久99九九99精品| 成人性生交大片免费看中文网站| 欧美日韩精品欧美日韩精品一综合| 欧美亚洲一区二区三区四区| 欧美剧在线免费观看网站 | 精品黑人一区二区三区久久| 国产午夜亚洲精品理论片色戒| 亚洲国产精品精华液ab| 亚洲欧美福利一区二区| 亚洲电影你懂得| 蜜臀av一区二区| 国产电影精品久久禁18| 91麻豆精品一区二区三区| 欧美日韩国产在线观看| 欧美精品一区二区三区高清aⅴ| 国产视频一区不卡| 一区二区三区产品免费精品久久75| 丝袜国产日韩另类美女| 国产在线精品免费av| 91网站在线播放| 欧美日韩日日摸| 久久综合av免费| 亚洲另类中文字| 久久激情综合网| 色悠悠亚洲一区二区| 欧美一区二区网站| 国产精品久久久久久久蜜臀| 亚洲亚洲人成综合网络| 国产一区91精品张津瑜| 91行情网站电视在线观看高清版| 日韩精品在线一区| 亚洲六月丁香色婷婷综合久久| 美女视频网站黄色亚洲| 91小视频免费观看| 精品久久久久一区| 亚洲综合在线第一页| 精品一区二区三区免费观看| 在线视频综合导航| 久久精品欧美日韩| 日韩国产欧美在线观看| 色视频一区二区| 久久亚洲春色中文字幕久久久| 一区二区三区在线看| 国产成人午夜视频| 欧美一区二区三区成人| 亚洲乱码中文字幕| 国产成人av一区二区三区在线观看| 欧美三级三级三级| 亚洲免费伊人电影| 粉嫩高潮美女一区二区三区| 日韩一区和二区| 亚洲国产精品人人做人人爽| av亚洲精华国产精华精| 精品第一国产综合精品aⅴ| 日韩综合小视频| 欧洲色大大久久| 亚洲精品成人天堂一二三| 成人免费视频一区| 国产精品久久久久桃色tv| 国产一区二区三区四区五区入口| 欧美日韩极品在线观看一区| 综合自拍亚洲综合图不卡区| 国产福利电影一区二区三区| 欧美精品一区二区蜜臀亚洲| 香蕉成人伊视频在线观看| 色综合一区二区| 国产精品二区一区二区aⅴ污介绍| 国产一区二区三区日韩| 欧美精品一区二区三区很污很色的| 美女一区二区久久| 日韩视频在线你懂得| 日韩av一区二区在线影视| 欧美日韩黄色影视| 五月天国产精品| 欧美精品777| 免费成人在线视频观看| 7777精品伊人久久久大香线蕉完整版| 亚洲一区二区三区小说| 欧美在线高清视频| 香蕉乱码成人久久天堂爱免费| 在线观看av一区二区| 亚洲一级不卡视频| 欧美日韩另类国产亚洲欧美一级| 亚洲v日本v欧美v久久精品| 欧美日韩三级在线| 日本va欧美va欧美va精品| 欧美一级精品大片| 狠狠色丁香婷婷综合| 国产欧美精品一区二区色综合 | av网站一区二区三区| 中文字幕亚洲区| 91精品1区2区| 日韩影院免费视频| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 麻豆精品蜜桃视频网站| 精品88久久久久88久久久| 高清国产午夜精品久久久久久| 国产精品美女久久福利网站| 91亚洲国产成人精品一区二区三 | 成人高清免费观看| 一区二区三区日韩精品视频| 69久久夜色精品国产69蝌蚪网| 久久成人久久鬼色| 中文字幕在线一区免费|