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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? toposort.c

?? 圖的用法
?? C
字號:
/*   拓撲排序的實現,解決一類需要先做什么,再做什么,比如學習一系列基本教程以及施工隊進入工地的時間安排順序!

*/
#include<stdlib.h>
#include<stdio.h>
#define SIZE 100
#define MAXqueue  20      //隊列的最大容量
struct node               //圖的頂點結構聲明
{
	int vertex;                  //頂點數據
	struct node *nextnode;       //指向下一個頂點的指針
};
typedef struct node *graph;      //圖的結構新類型
struct node head[SIZE];          //圖頂點結構數組
int yjj_queue[MAXqueue];             //隊列的數組聲明
int yjj_front = -1;					 //隊列的隊頭
int yjj_rear = -1;					 //隊列的對尾
int **yjj_node;                      //保存用戶輸入的數據的一個數組(起點。終點。權值)
int yjj_cost[SIZE][SIZE];            //保存權值,yjj_cost[0][0]里面的沒有


/* ----------------------------------*/
/*    create the graph contion du    */
/* ----------------------------------*/


void creategraph(graph head,int **node,int num)
{
	graph newnode;           //新頂點指針
	graph ptr;
	int from;                //邊的起點
	int to;                  //邊的終點
	int i;

	for(i = 0;i < num;i++)                               //讀取邊的循環
	{
		from = node[i][0];                               //邊的起點
		to = node[i][1];                                 //邊的終點
	   	yjj_cost[from][to] = node[i][2];
		head[to].vertex += 1;                            //入度加一
		/* create newnode */
		newnode = (graph )malloc(sizeof(struct node));
		newnode->vertex = to;
		newnode->nextnode = NULL;
		ptr = &(head[from]);
		while(ptr->nextnode != NULL)
			ptr = ptr->nextnode;                          //下一個頂點
		ptr->nextnode = newnode;                          //插入結尾
	}
}


/* ----------------------------------*/
/*        excute the toposort        */
/* ----------------------------------*/
int toposort(graph head,int num)
{
	graph ptr;
	int i;

	/* 將入度為零的頂點存入隊列的循環*/
	for( i = 1;i <= num*2;i++)
	{
		ptr = head[i].nextnode;                               
		if(head[i].vertex == 0&&ptr ->nextnode != NULL)   //入度為零
	 		enqueue(i);           //存頂點到隊列
		ptr = NULL;
	}
	while((i = dequeue())!= -1)
	{
		printf("%d ",i);            //輸出拓撲排序的頂點
		ptr = head[i].nextnode;     //頂點位置
		while(ptr != NULL)
		{
			i = ptr -> vertex;                //得到頂點值
			head[i].vertex --;                //頂點入度減一
			if(head[i].vertex == 0)           //如果入度是0
				enqueue(i);                   //存頂點到隊列
	 		ptr = ptr -> nextnode;            //下一個頂點

		}
	}
	printf("\n");
	for( i = 1;i <= num;i++)                 //  檢查是否有循環  
	if(head[i].vertex != 0)                  //  入度不是0
		return 1;                            //  有回路
	return 0;                                //  沒有回路
}


/* --------------------------*/
/*        duilie data save   */
/* --------------------------*/

int enqueue(int value)                  //向隊列里插入數據
{
	if(yjj_rear + 1 == yjj_front || yjj_rear == (MAXqueue - 1)&&yjj_front <= 0)       // 檢查隊列是否已滿
		return -1;                                                    // 無法存入
	yjj_rear ++;                                                          //隊尾指針往前移動
	if(yjj_rear == MAXqueue)                                              //是否超過界限
		yjj_rear =  0 ;                                                      //從頭開始
	yjj_queue[yjj_rear] = value;                                              //存入隊列
}

/* --------------------------*/
/*        duilie data output   */
/* --------------------------*/

int dequeue()                           //取出數據
{
	if(yjj_front == yjj_rear)                                                //檢查隊列是否為空
	{
		return -1;                                                   //無法取出
	}
	yjj_front ++;                                                        //隊頭指針往前移動
	if(yjj_front == MAXqueue)                                            //是否超過界限
		yjj_front = 0;                                                   //從頭開始
	return yjj_queue[yjj_front];                                             //隊列取出
}

/* --------------------------*/
/*      the main fuction     */
/* --------------------------*/
void main()
{
	graph  ptr;
    /*----------------------------------------------------------------*/
	int m,n=3;            //控制動態二維數據的聲請
    int i;
	clrscr();
	/* 建立二維數組保存用戶的輸入:包括(起點,終點,以及權值)*/
	printf("Please input one number:\n");
	scanf("%d",&m);
	yjj_node = (int **) malloc(m*sizeof(int *));
	for(i = 0;i < m;i ++)
		yjj_node[i] = (int *)malloc(n*sizeof(int));
	for(i = 0;i < m;i ++)
		{
			printf("Please input datas:\n");
			scanf ("%d,%d,%d",&yjj_node[i][0],&yjj_node[i][1], &yjj_node[i][2]) ;
		}
    /*----------------------------------------------------------------*/

	for(i =1;i <=SIZE;i++)
	{
		head[i].vertex = 0;                           //設置頂點值
		head[i].nextnode = NULL;                      //清除圖的指針
	}
	creategraph( head,yjj_node,m);
    //creategraph( head2,node,10);
	printf("fisrt graph:\n");
	if(toposort( head, m))                            //拓撲排序
		printf("have ciycal:\n");
	else 
		printf("do not have ciycal:\n");
	yjj_front = yjj_rear = -1;                                 //清除隊列
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美男人的天堂一二区| 欧美日韩国产另类一区| 五月天丁香久久| 精品美女在线观看| 欧美亚洲禁片免费| 大白屁股一区二区视频| 日韩在线一区二区| 亚洲欧洲另类国产综合| 欧美一级精品在线| 欧美日韩综合一区| 91日韩精品一区| 国产一区二区三区香蕉| 日韩黄色免费电影| 日韩精品一区第一页| 日韩一区中文字幕| 中文一区二区完整视频在线观看| 91超碰这里只有精品国产| 99精品视频一区二区三区| 国产乱码一区二区三区| 日韩av电影一区| 亚洲一区在线观看免费| 亚洲欧美日韩一区二区三区在线观看| 26uuu久久天堂性欧美| 欧美精品日日鲁夜夜添| 在线亚洲一区观看| aaa亚洲精品| 成人晚上爱看视频| 国产美女精品在线| 精品一区二区免费在线观看| 天天综合网天天综合色| 亚洲最大成人综合| 夜色激情一区二区| 一区二区免费看| 亚洲精品免费看| 亚洲综合小说图片| 亚洲一区在线观看免费观看电影高清| 亚洲精品高清在线| 一区二区三区.www| 亚洲成人午夜电影| 亚洲国产日韩综合久久精品| 亚洲永久免费视频| 亚洲一区免费视频| 亚洲成人av中文| 七七婷婷婷婷精品国产| 久久不见久久见免费视频1| 麻豆成人免费电影| 国产在线精品国自产拍免费| 国产精品2024| av色综合久久天堂av综合| 99久久久无码国产精品| 日本道色综合久久| 欧美日韩高清不卡| 日韩视频不卡中文| 久久免费国产精品| 国产精品嫩草影院av蜜臀| 一区二区中文视频| 亚洲一区二区三区在线播放| 午夜久久久影院| 狠狠色狠狠色综合系列| 国产精品99久久久久久有的能看| 国产成人在线视频免费播放| 成人爱爱电影网址| 欧美亚洲一区二区在线观看| 欧美精选一区二区| 日韩免费电影网站| 国产日韩欧美制服另类| 亚洲麻豆国产自偷在线| 日本中文在线一区| 极品销魂美女一区二区三区| 国产成人精品影视| 91国在线观看| 欧美电视剧在线观看完整版| 国产精品网友自拍| 亚洲国产视频在线| 国产乱码精品1区2区3区| 91社区在线播放| 亚洲视频小说图片| 天天射综合影视| 国产精品综合在线视频| 色香色香欲天天天影视综合网| 欧美亚洲一区二区在线观看| 26uuu色噜噜精品一区| 中文字幕在线播放不卡一区| 午夜精品久久久久久久久| 国产乱码精品一区二区三区五月婷 | 成人免费观看av| 欧洲色大大久久| 久久无码av三级| 亚洲3atv精品一区二区三区| 国产宾馆实践打屁股91| 欧美日韩国产免费| 1000部国产精品成人观看| 免费三级欧美电影| 色av成人天堂桃色av| 久久一日本道色综合| 亚洲成人免费在线| eeuss影院一区二区三区| 日韩欧美一二三四区| 夜夜精品浪潮av一区二区三区| 国产在线麻豆精品观看| 欧美日韩国产美| 亚洲男人的天堂在线观看| 国产精品亚洲午夜一区二区三区 | 亚洲天堂福利av| 国产一区二区福利| 欧美精品在线观看一区二区| 国产精品日韩精品欧美在线| 麻豆91免费看| 欧美日韩国产一级| 亚洲视频一区二区在线| 国产成人午夜精品影院观看视频| 欧美精品三级日韩久久| 一区二区三区**美女毛片| 9人人澡人人爽人人精品| 精品91自产拍在线观看一区| 日韩av一区二区三区四区| 一本大道av一区二区在线播放| 久久久噜噜噜久噜久久综合| 日韩**一区毛片| 欧美系列亚洲系列| 亚洲免费在线播放| 91小视频在线观看| 亚洲欧洲精品天堂一级| 国产成人精品亚洲午夜麻豆| 精品国产污污免费网站入口| 日av在线不卡| 欧美一区在线视频| 五月天婷婷综合| 欧美日本韩国一区二区三区视频 | 亚洲欧美色综合| av中文字幕不卡| 国产精品乱码人人做人人爱 | 国产精品一二三四| 久久尤物电影视频在线观看| 国模少妇一区二区三区| 日韩精品一区二区三区在线观看 | 丁香桃色午夜亚洲一区二区三区| 精品毛片乱码1区2区3区| 精品一区二区免费视频| 久久综合成人精品亚洲另类欧美 | 午夜精品久久久久久久久久| 欧美日韩国产一区| 日本va欧美va精品发布| 日韩精品一区二区三区四区视频| 免费在线欧美视频| 精品久久久久久亚洲综合网| 激情综合色丁香一区二区| 久久免费电影网| 99久久精品免费看国产免费软件| 亚洲欧洲三级电影| 欧美网站一区二区| 蜜桃精品视频在线| 久久精品这里都是精品| av一区二区久久| 午夜精品久久久久影视| 欧美成人三级在线| 国产成人精品一区二区三区网站观看| 国产精品久久久爽爽爽麻豆色哟哟 | 久久99国产精品免费网站| 精品国产百合女同互慰| 成人黄页在线观看| 亚洲成人你懂的| 欧美精品一区二区三区蜜臀| 成人av电影在线播放| 亚洲午夜激情网页| 日韩免费视频一区| 成人伦理片在线| 亚洲地区一二三色| 国产视频一区二区在线| 色天使久久综合网天天| 美女脱光内衣内裤视频久久网站| 国产亚洲一二三区| 91豆麻精品91久久久久久| 人妖欧美一区二区| 国产精品国产三级国产aⅴ入口 | 国产精品天美传媒沈樵| 欧美综合色免费| 国产一区二区三区四| 亚洲视频资源在线| 欧美xxxxx牲另类人与| 99热这里都是精品| 蜜乳av一区二区| 亚洲欧美日韩国产综合| 欧美一级在线观看| 91美女福利视频| 麻豆中文一区二区| 一区二区三区在线免费观看| 欧美精品一区二区三区在线播放| 91丨porny丨首页| 久久99国产精品尤物| 亚洲一区在线免费观看| 国产亚洲短视频| 欧美一级一区二区| 91免费国产视频网站| 精品一区二区久久久| 亚洲成人黄色影院| 国产精品久久久久婷婷二区次| 欧美一区二区三区视频免费播放| 91玉足脚交白嫩脚丫在线播放| 国产在线观看一区二区|