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

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

?? graph.cc

?? PostsBayesian Optimization Algorithm with Decision Graphs in C++,
?? CC
字號:
// ################################################################################//// name:          graph.cc      //// author:        Martin Pelikan//// purpose:       the definition of classes OrientedGraph and AcyclicOrientedGraph//                for manipulation with oriented graphs//// last modified: February 1999//// #################################################################################include <stdlib.h>#include <stdio.h>#include "graph.h"#include "memalloc.h"#include "stack.h"#include "utils.h"//==========================================================//==========================================================//==========================================================OrientedGraph::OrientedGraph(int n){  int i;  // set the number of vertices  N=n;  N2=N*N;  // allocate memory for coincidence, path, and parentList matrices  coincidence = (char**) Calloc(N,sizeof(char*));  path = (char**) Calloc(N,sizeof(char*));  parentList = (int**) Calloc(N,sizeof(int*));  for (i=0; i<N; i++)    {      coincidence[i] = (char*) Calloc(N,sizeof(char));      path[i]        = (char*) Calloc(N,sizeof(char));      parentList[i]  = (int*) Calloc(N,sizeof(int));    }  // allocate memory for the number of incoming and outcoming edges  numIn = (int*) Calloc(N,sizeof(int));  numOut = (int*) Calloc(N,sizeof(int));  // allocate memory for vertex-marks  mark = (int*) Calloc(n,sizeof(int));  // set this graph to an empy graph  removeAllEdges();  // unmark all vertices  removeAllMarks();};//==========================================================OrientedGraph::~OrientedGraph(){  int i;  // free the memory used by coincidence, path, and parentList matrices  for (i=0; i<N; i++)    {      Free(coincidence[i]);      Free(path[i]);      Free(parentList[i]);    }  Free(coincidence);  Free(path);  Free(parentList);  // free the memory used by numInt and numOut arrays  Free(numIn);  Free(numOut);  // free the memory used by vertex-marks  Free(mark);};//==========================================================int OrientedGraph::size(){  return N;}//==========================================================int OrientedGraph::addEdge(int i, int j){  register int k,l;  // is the edge already present?  if (coincidence[i][j])     return SUCCESS;  // connect the vertices and update the list of parents  coincidence[i][j]=CONNECTED;  parentList[j][numIn[j]]=i;  numOut[i]++;  numIn[j]++;  path[i][j]=CONNECTED;  // update the path matrix  for (k=0; k<N; k++)  if (path[k][i])     for (l=0; l<N; l++)         if ((l!=k)&&(path[j][l]))            path[k][l]=CONNECTED;  return SUCCESS;};//==========================================================int OrientedGraph::removeEdge(int i, int j){  int k;  register int l,m;  char added;  IntStack *from,*to,*from2,*to2;  // is the edge present?  if (!coincidence[i][j])     return SUCCESS;  // initialize stacks (needed later)  from  = new IntStack(N2);  to    = new IntStack(N2);  from2 = new IntStack(N2);  to2   = new IntStack(N2);  // remove the edge  coincidence[i][j]=NOT_CONNECTED;  numOut[i]--;  numIn[j]--;  // update the list of parents  for (k=0; k<=numIn[j]; k++)    if (parentList[j][k]==i)      if (k<numIn[j])	parentList[j][k]=parentList[j][numIn[j]];  // update the path matrix  // a) remove all paths that could possibly be wrong  for (k=0; k<N; k++)    if (path[k][i])      for (l=0; l<N; l++)	if ((l!=k)&&(!coincidence[k][l])&&(path[j][l]))	  {	    path[k][l]=0;	    from->push(k);	    to->push(l);	  }  // b) add all paths that were potentially removed incorrectly  do    {      added=0;      while (from->notEmpty())	{	  k=from->pop();	  l=to->pop();	  	  for (m=0; m<N; m++)	    if ((path[k][m])&&(path[m][l]))	      {		path[k][l]=CONNECTED;		added=1;	      }	  if (!path[k][l])	    {	      from2->push(k);	      to2->push(l);	    }	}      // swap stacks      swapPointers((void**) &from, (void**) &from2);      swapPointers((void**) &to, (void**) &to2);    } while (added);  // free used stacks  delete from;  delete to;  delete from2;  delete to2;  // get back  return SUCCESS;};//==========================================================int OrientedGraph::reverseEdge(int i, int j){  if (canReverseEdge(i,j))    {      removeEdge(i,j);      return addEdge(j,i);    }  else    return FAIL;}//==========================================================int OrientedGraph::canReverseEdge(int i, int j){  return connected(i,j);}//==========================================================int OrientedGraph::removeAllEdges(){  for (int i=0; i<N; i++)  {    path[i][i]=CONNECTED;    numIn[i]=0;    numOut[i]=0;    for (int j=0; j<i; j++)      coincidence[i][j]=coincidence[j][i]=path[i][j]=path[j][i]=NOT_CONNECTED;  }  return SUCCESS;}//==========================================================int OrientedGraph::setMark(int i, int val){  mark[i]=val;  return SUCCESS;};//==========================================================int OrientedGraph::removeMark(int i){  mark[i]=0;  return SUCCESS;}//==========================================================int OrientedGraph::removeAllMarks(){  register int i;  for (i=0; i<N; i++)    mark[i]=0;  return SUCCESS;}//==========================================================int OrientedGraph::setAllMarks(int val){  register int i;    for (i=0; i<N; i++)    mark[i]=val;  return SUCCESS;}//==========================================================int OrientedGraph::connected(int i, int j){  return (coincidence[i][j]);};//==========================================================int OrientedGraph::notConnected(int i, int j){  return (coincidence[i][j]);};//==========================================================int OrientedGraph::existsPath(int i, int j){  return (path[i][j]);};//==========================================================int OrientedGraph::getNumIn(int i){  return numIn[i];}//==========================================================int OrientedGraph::getNumOut(int i){  return numOut[i];}//==========================================================int OrientedGraph::getMark(int i){  return mark[i];};//==========================================================int OrientedGraph::getNumberOfVertices(){  return N;}//==========================================================int *OrientedGraph::getParentList(int i){  return parentList[i];}//==========================================================int  OrientedGraph::printCoincidenceMatrix(FILE *out){  int i,j;  fprintf(out,"coincidenceMatrix\n");  for (i=0; i<N; i++)    {      for (j=0; j<N; j++)	fprintf(out,"%u ",coincidence[i][j]);      fprintf(out,"\n");    }    return SUCCESS;}//==========================================================int  OrientedGraph::printPathMatrix(FILE *out){  int i,j;  fprintf(out,"pathMatrix\n");  for (i=0; i<N; i++)    {      for (j=0; j<N; j++)	fprintf(out,"%u ",path[i][j]);      fprintf(out,"\n");    }    return SUCCESS;}//==========================================================int  OrientedGraph::printNumInArray(FILE *out){  int i,j;  fprintf(out,"numIn\n");  for (i=0; i<N; i++)    {      fprintf(out,"%u (",numIn[i]);      for (j=0; j<numIn[i]; j++)	fprintf(out,"%u ",parentList[i][j]);      fprintf(out,")");    }  fprintf(out,"\n");  return SUCCESS;}//==========================================================int  OrientedGraph::printNumOutArray(FILE *out){  int i;  fprintf(out,"numOut\n");  for (i=0; i<N; i++)    fprintf(out,"%u ",numOut[i]);  fprintf(out,"\n");  return SUCCESS;}//==========================================================//==========================================================//==========================================================AcyclicOrientedGraph::AcyclicOrientedGraph(int n):OrientedGraph(n){}//==========================================================AcyclicOrientedGraph::~AcyclicOrientedGraph(){}//==========================================================AcyclicOrientedGraph::addEdge(int i, int j){  if (canAddEdge(i,j))    return OrientedGraph::addEdge(i,j);  else    return FAIL;}//==========================================================AcyclicOrientedGraph::canAddEdge(int i, int j){  return (!existsPath(j,i))&&(!connected(i,j));}//==========================================================int AcyclicOrientedGraph::reverseEdge(int i, int j){  if (connected(i,j))  {    removeEdge(i,j);    if (addEdge(j,i))      return SUCCESS;    else      {        addEdge(i,j);	return FAIL;      }  }  else    return FAIL;}//==========================================================int AcyclicOrientedGraph::canReverseEdge(int i, int j){  int result;  if (connected(i,j))    {      removeEdge(i,j);      result = (!existsPath(i,j));      addEdge(i,j);      return result;    }  else    return FAIL;}//==========================================================

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久er精品视频| 亚洲午夜av在线| 丰满放荡岳乱妇91ww| 久久嫩草精品久久久精品一| 国产精品原创巨作av| 国产精品视频yy9299一区| 99re视频精品| 五月婷婷激情综合网| 欧美成人video| 福利视频网站一区二区三区| 国产精品私人影院| 欧美日韩一区二区在线观看 | 亚洲精品免费电影| 欧美日韩在线不卡| 久久国产欧美日韩精品| 久久精品视频免费| 在线免费观看日韩欧美| 奇米影视在线99精品| 久久精品日韩一区二区三区| 日本高清不卡在线观看| 日韩精品一级二级| 国产视频不卡一区| 欧美一a一片一级一片| 国产尤物一区二区在线| 亚洲欧美一区二区三区久本道91| 欧美另类高清zo欧美| 粉嫩在线一区二区三区视频| 亚洲国产日韩a在线播放| 26uuu欧美日本| 欧美视频在线观看一区| 韩国精品一区二区| 亚洲国产另类av| 国产无人区一区二区三区| 欧美伊人精品成人久久综合97 | 欧美人与z0zoxxxx视频| 懂色av噜噜一区二区三区av| 日韩精品乱码免费| **欧美大码日韩| 久久综合色播五月| 在线观看一区日韩| 丁香激情综合五月| 精品一区二区久久久| 亚洲成人资源网| 国产精品人人做人人爽人人添| 日韩一区二区在线免费观看| 91老师片黄在线观看| 国产成人精品免费网站| 视频一区二区三区在线| 亚洲欧美在线另类| 国产日韩影视精品| 精品奇米国产一区二区三区| 欧美亚洲另类激情小说| av激情综合网| 成人亚洲一区二区一| 黄色日韩网站视频| 男男视频亚洲欧美| 亚洲国产欧美另类丝袜| 亚洲免费观看视频| 欧美激情一区二区三区四区| 亚洲精品一区二区三区香蕉| 日韩一级二级三级精品视频| 欧美日韩在线电影| 欧美色综合网站| 欧美亚男人的天堂| 欧美性受极品xxxx喷水| 欧美亚洲动漫精品| 在线观看不卡视频| 欧美唯美清纯偷拍| 欧美日韩激情一区二区三区| 91精品办公室少妇高潮对白| 99精品视频中文字幕| 成人污视频在线观看| 国产91对白在线观看九色| 国产麻豆成人精品| 国产精品自在欧美一区| 韩国成人精品a∨在线观看| 久久国产成人午夜av影院| 麻豆精品在线播放| 久久福利视频一区二区| 久久国产剧场电影| 国产综合色产在线精品| 国产99久久久久久免费看农村| 国产成人av资源| av网站免费线看精品| 91色porny| 欧美伊人精品成人久久综合97| 欧美日本在线视频| 欧美一级高清片| 久久夜色精品国产噜噜av | av一区二区三区在线| 91色视频在线| 欧美丰满美乳xxx高潮www| 欧美一区二区视频网站| 精品粉嫩aⅴ一区二区三区四区| 欧美精品一区二区蜜臀亚洲| 国产午夜精品久久| 亚洲黄色av一区| 午夜精品免费在线观看| 久久99国产精品久久99果冻传媒| 国产不卡视频在线观看| 色综合天天天天做夜夜夜夜做| 精品国产污网站| 国产日韩欧美精品在线| 亚洲精品免费在线| 蜜桃av一区二区在线观看| 国产成人综合亚洲91猫咪| 91色综合久久久久婷婷| 91精品国产综合久久久久久久久久 | 亚洲黄网站在线观看| 日韩va欧美va亚洲va久久| 国产乱人伦偷精品视频免下载| 99久久久免费精品国产一区二区| 欧美性xxxxxx少妇| 精品成人在线观看| 狠狠色丁香九九婷婷综合五月| 成人小视频免费在线观看| 欧美日韩电影在线播放| 国产欧美日韩在线观看| 亚洲综合图片区| 极品美女销魂一区二区三区免费| 不卡视频在线看| 日韩视频在线你懂得| 亚洲欧美日韩在线| 激情文学综合网| 欧美视频中文字幕| 欧美国产精品一区| 免费在线看一区| 色婷婷av一区二区三区gif| 日韩欧美高清在线| 亚洲在线视频一区| 国产69精品久久99不卡| 91精品国产高清一区二区三区蜜臀| 久久久美女艺术照精彩视频福利播放| 一区二区在线观看视频| 国产成+人+日韩+欧美+亚洲| 欧美一区二区观看视频| 亚洲黄色av一区| 成人深夜在线观看| 精品国产精品一区二区夜夜嗨| 亚洲一区二区三区不卡国产欧美| 成人午夜在线免费| 久久午夜羞羞影院免费观看| 日韩高清一区二区| 色先锋aa成人| 亚洲日穴在线视频| 不卡一区中文字幕| 国产日韩精品视频一区| 国产在线国偷精品免费看| 制服丝袜中文字幕亚洲| 亚洲精品国产精品乱码不99 | 亚洲不卡一区二区三区| 色综合久久综合网| 亚洲图片你懂的| 国产成人av一区二区三区在线| 日韩欧美亚洲另类制服综合在线 | 麻豆国产精品视频| 欧美年轻男男videosbes| 亚洲高清免费在线| 在线观看免费成人| 亚洲超碰97人人做人人爱| 欧美撒尿777hd撒尿| 亚洲444eee在线观看| 欧美肥妇free| 奇米四色…亚洲| 日韩一卡二卡三卡四卡| 日韩高清欧美激情| 日韩一区二区三区免费观看| 午夜精品久久久久久久久久久| 欧美日韩亚州综合| 奇米一区二区三区| xvideos.蜜桃一区二区| 国产激情视频一区二区三区欧美| 国产免费久久精品| 成人av影院在线| 亚洲激情校园春色| 欧美日本韩国一区二区三区视频| 日韩成人免费电影| 精品日韩一区二区三区| 国产成人在线观看免费网站| 中文字幕免费不卡在线| 99精品视频免费在线观看| 国产精品一级在线| 日本一区二区三区高清不卡| 成人av免费在线播放| 夜夜爽夜夜爽精品视频| 制服丝袜亚洲网站| 国产精品一区二区x88av| 国产精品成人一区二区三区夜夜夜| 92国产精品观看| 三级在线观看一区二区| 26uuu久久天堂性欧美| 成人黄色av电影| 亚洲国产精品一区二区久久恐怖片 | 欧美色电影在线| 美女视频网站久久| 国产精品国产精品国产专区不蜜 | 精品日韩一区二区| 9人人澡人人爽人人精品| 午夜天堂影视香蕉久久| 久久久国产午夜精品|