三种方法求强连通分量的比较


论文写作或者计算需要帮助可发邮件到 hwstu # sohu.com 把 #替换成@,请说清来意,不必拐弯抹角,浪费相互之间的时间。

返回首页


此处输入要素的个数:


三种方法求强连通分量的比较


显示的是一个随机 12 * 12 的方阵



   老鼠金牛白虎狡兔青龙毒蛇骏马小羊猕猴山鸡狗仔笨猪
老鼠       1                           
金牛                   1    1       1
白虎    1             1               
狡兔                   1               
青龙                                    
毒蛇                               1   
骏马             1                1   
小羊       1    1    1               
猕猴                                    
山鸡          1                   1 1
狗仔 1             1                  
笨猪    1             1 1    1      
  访问的元素是:老鼠->
  访问的元素是:白虎->
  访问的元素是:金牛->
  访问的元素是:骏马->
  访问的元素是:青龙->
     ; 正在搜索,堆栈里的元素有:青龙
  访问的元素是:狗仔->
  访问的元素是:毒蛇->
     ; 正在搜索,堆栈里的元素有:青龙、毒蛇
     ; 正在搜索,堆栈里的元素有:青龙、毒蛇、狗仔
     ; 正在搜索,堆栈里的元素有:青龙、毒蛇、狗仔、骏马
  访问的元素是:猕猴->
     ; 正在搜索,堆栈里的元素有:青龙、毒蛇、狗仔、骏马、猕猴
  访问的元素是:笨猪->
  访问的元素是:小羊->
     ; 正在搜索,堆栈里的元素有:青龙、毒蛇、狗仔、骏马、猕猴、小羊
  访问的元素是:山鸡->
  访问的元素是:狡兔->
     ; 正在搜索,堆栈里的元素有:青龙、毒蛇、狗仔、骏马、猕猴、小羊、狡兔
     ; 正在搜索,堆栈里的元素有:青龙、毒蛇、狗仔、骏马、猕猴、小羊、狡兔、山鸡
     ; 正在搜索,堆栈里的元素有:青龙、毒蛇、狗仔、骏马、猕猴、小羊、狡兔、山鸡、笨猪
     ; 正在搜索,堆栈里的元素有:青龙、毒蛇、狗仔、骏马、猕猴、小羊、狡兔、山鸡、笨猪、金牛
     ; 正在搜索,堆栈里的元素有:青龙、毒蛇、狗仔、骏马、猕猴、小羊、狡兔、山鸡、笨猪、金牛、白虎
     ; 正在搜索,堆栈里的元素有:青龙、毒蛇、狗仔、骏马、猕猴、小羊、狡兔、山鸡、笨猪、金牛、白虎、老鼠
当前深度搜索堆栈里面的节点是青龙、毒蛇、狗仔、骏马、猕猴、小羊、狡兔、山鸡、笨猪、金牛、白虎、老鼠
堆栈里面的节点是青龙、毒蛇、狗仔、骏马、猕猴、小羊、狡兔、山鸡、笨猪、金牛、白虎、老鼠
逆图也就是转置矩阵如下:
   老鼠金牛白虎狡兔青龙毒蛇骏马小羊猕猴山鸡狗仔笨猪
老鼠                               1   
金牛       1                         1
白虎 1                   1            
狡兔                            1      
青龙                   1 1            
毒蛇                               1   
骏马    1 1 1          1          1
小羊                                  1
猕猴    1                              
山鸡                                  1
狗仔                1 1       1      
笨猪    1                      1      
  把元素:老鼠弹出->
     ; 回路0里的元素有:老鼠
     ; 回路0里的元素有:老鼠、狗仔
     ; 回路0里的元素有:老鼠、狗仔、毒蛇
     ; 回路0里的元素有:老鼠、狗仔、毒蛇、骏马
     ; 回路0里的元素有:老鼠、狗仔、毒蛇、骏马、金牛
     ; 回路0里的元素有:老鼠、狗仔、毒蛇、骏马、金牛、白虎
     ; 回路0里的元素有:老鼠、狗仔、毒蛇、骏马、金牛、白虎、小羊
     ; 回路0里的元素有:老鼠、狗仔、毒蛇、骏马、金牛、白虎、小羊、笨猪
     ; 回路0里的元素有:老鼠、狗仔、毒蛇、骏马、金牛、白虎、小羊、笨猪、山鸡
     ; 回路0里的元素有:老鼠、狗仔、毒蛇、骏马、金牛、白虎、小羊、笨猪、山鸡、狡兔
  回路序号1加一
  把元素:白虎弹出->
  把元素:金牛弹出->
  把元素:笨猪弹出->
  把元素:山鸡弹出->
  把元素:狡兔弹出->
  把元素:小羊弹出->
  把元素:猕猴弹出->
     ; 回路1里的元素有:猕猴
  回路序号2加一
  把元素:骏马弹出->
  把元素:狗仔弹出->
  把元素:毒蛇弹出->
  把元素:青龙弹出->
     ; 回路2里的元素有:青龙
  回路序号3加一
  开始用深度搜索,从第一个节点开始!
      访问的元素是:老鼠
      堆栈里的元素有:老鼠
      数组dfn中各个要素的值:老鼠=1
      数组dfn中各个要素的值:老鼠=1
      访问的元素是:白虎
      堆栈里的元素有:老鼠、白虎
      数组dfn中各个要素的值:老鼠=1、白虎=2
      数组dfn中各个要素的值:老鼠=1、白虎=2
      访问的元素是:金牛
      堆栈里的元素有:老鼠、白虎、金牛
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=3
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=3
      访问的元素是:骏马
      堆栈里的元素有:老鼠、白虎、金牛、骏马
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=3、骏马=4
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=3、骏马=4
      访问的元素是:青龙
      堆栈里的元素有:老鼠、白虎、金牛、骏马、青龙
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=3、骏马=4、青龙=5
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=3、骏马=4、青龙=5
          此时青龙在两个数组中的值相等,并且前驱节点为空!
         堆栈里的元素有:老鼠、白虎、金牛、骏马、青龙
        数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=3、骏马=4、青龙=5
        数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=3、骏马=4、青龙=5
          弹出要素青龙 如果不等于青龙继续弹出
         堆栈里的元素有:老鼠、白虎、金牛、骏马
          停止弹出!
      访问的元素是:狗仔
      堆栈里的元素有:老鼠、白虎、金牛、骏马、狗仔
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=3、骏马=4、青龙=5、狗仔=6
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=3、骏马=4、青龙=5、狗仔=6
          要素老鼠在dfn数组中的值,小于狗仔在low数组中的值,现在进行赋值 low狗仔=dfn老鼠;
      访问的元素是:毒蛇
      堆栈里的元素有:老鼠、白虎、金牛、骏马、狗仔、毒蛇
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=3、骏马=4、青龙=5、狗仔=6、毒蛇=7
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=3、骏马=4、青龙=5、狗仔=1、毒蛇=7
          要素狗仔在dfn数组中的值,小于毒蛇在low数组中的值,现在进行赋值 low毒蛇=dfn狗仔;
          要素狗仔在low数组中的值,小于骏马在low数组中的值,现在进行赋值让两个相等
          要素骏马在low数组中的值,小于金牛在low数组中的值,现在进行赋值让两个相等
      访问的元素是:猕猴
      堆栈里的元素有:老鼠、白虎、金牛、骏马、狗仔、毒蛇、猕猴
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=3、骏马=4、青龙=5、狗仔=6、毒蛇=7、猕猴=8
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=1、骏马=1、青龙=5、狗仔=1、毒蛇=6、猕猴=8
          此时猕猴在两个数组中的值相等,并且前驱节点为空!
         堆栈里的元素有:老鼠、白虎、金牛、骏马、狗仔、毒蛇、猕猴
        数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=3、骏马=4、青龙=5、狗仔=6、毒蛇=7、猕猴=8
        数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=1、骏马=1、青龙=5、狗仔=1、毒蛇=6、猕猴=8
          弹出要素猕猴 如果不等于猕猴继续弹出
         堆栈里的元素有:老鼠、白虎、金牛、骏马、狗仔、毒蛇
          停止弹出!
      访问的元素是:笨猪
      堆栈里的元素有:老鼠、白虎、金牛、骏马、狗仔、毒蛇、笨猪
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=3、骏马=4、青龙=5、狗仔=6、毒蛇=7、猕猴=8、笨猪=9
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=1、骏马=1、青龙=5、狗仔=1、毒蛇=6、猕猴=8、笨猪=9
          要素金牛在dfn数组中的值,小于笨猪在low数组中的值,现在进行赋值 low笨猪=dfn金牛;
      访问的元素是:小羊
      堆栈里的元素有:老鼠、白虎、金牛、骏马、狗仔、毒蛇、笨猪、小羊
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=3、骏马=4、青龙=5、狗仔=6、毒蛇=7、猕猴=8、笨猪=9、小羊=10
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=1、骏马=1、青龙=5、狗仔=1、毒蛇=6、猕猴=8、笨猪=3、小羊=10
          要素白虎在dfn数组中的值,小于小羊在low数组中的值,现在进行赋值 low小羊=dfn白虎;
          要素小羊在low数组中的值,小于笨猪在low数组中的值,现在进行赋值让两个相等
      访问的元素是:山鸡
      堆栈里的元素有:老鼠、白虎、金牛、骏马、狗仔、毒蛇、笨猪、小羊、山鸡
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=3、骏马=4、青龙=5、狗仔=6、毒蛇=7、猕猴=8、笨猪=9、小羊=10、山鸡=11
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=1、骏马=1、青龙=5、狗仔=1、毒蛇=6、猕猴=8、笨猪=2、小羊=2、山鸡=11
      访问的元素是:狡兔
      堆栈里的元素有:老鼠、白虎、金牛、骏马、狗仔、毒蛇、笨猪、小羊、山鸡、狡兔
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=3、骏马=4、青龙=5、狗仔=6、毒蛇=7、猕猴=8、笨猪=9、小羊=10、山鸡=11、狡兔=12
      数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=1、骏马=1、青龙=5、狗仔=1、毒蛇=6、猕猴=8、笨猪=2、小羊=2、山鸡=11、狡兔=12
          要素骏马在dfn数组中的值,小于狡兔在low数组中的值,现在进行赋值 low狡兔=dfn骏马;
          要素狡兔在low数组中的值,小于山鸡在low数组中的值,现在进行赋值让两个相等
          要素金牛在low数组中的值,小于白虎在low数组中的值,现在进行赋值让两个相等
          此时老鼠在两个数组中的值相等,并且前驱节点为空!
         堆栈里的元素有:老鼠、白虎、金牛、骏马、狗仔、毒蛇、笨猪、小羊、山鸡、狡兔
        数组dfn中各个要素的值:老鼠=1、白虎=2、金牛=3、骏马=4、青龙=5、狗仔=6、毒蛇=7、猕猴=8、笨猪=9、小羊=10、山鸡=11、狡兔=12
        数组dfn中各个要素的值:老鼠=1、白虎=1、金牛=1、骏马=1、青龙=5、狗仔=1、毒蛇=6、猕猴=8、笨猪=2、小羊=2、山鸡=4、狡兔=4
          弹出要素狡兔 如果不等于老鼠继续弹出
         堆栈里的元素有:老鼠、白虎、金牛、骏马、狗仔、毒蛇、笨猪、小羊、山鸡
          弹出要素山鸡 如果不等于老鼠继续弹出
         堆栈里的元素有:老鼠、白虎、金牛、骏马、狗仔、毒蛇、笨猪、小羊
          弹出要素小羊 如果不等于老鼠继续弹出
         堆栈里的元素有:老鼠、白虎、金牛、骏马、狗仔、毒蛇、笨猪
          弹出要素笨猪 如果不等于老鼠继续弹出
         堆栈里的元素有:老鼠、白虎、金牛、骏马、狗仔、毒蛇
          弹出要素毒蛇 如果不等于老鼠继续弹出
         堆栈里的元素有:老鼠、白虎、金牛、骏马、狗仔
          弹出要素狗仔 如果不等于老鼠继续弹出
         堆栈里的元素有:老鼠、白虎、金牛、骏马
          弹出要素骏马 如果不等于老鼠继续弹出
         堆栈里的元素有:老鼠、白虎、金牛
          弹出要素金牛 如果不等于老鼠继续弹出
         堆栈里的元素有:老鼠、白虎
          弹出要素白虎 如果不等于老鼠继续弹出
         堆栈里的元素有:老鼠
          弹出要素老鼠 如果不等于老鼠继续弹出
         堆栈里的元素有:
          停止弹出!
  开始用深度搜索,从第一个节点开始!
      访问的元素是:老鼠
      搜索树里的元素的顺序是:老鼠=>1
      堆栈stack_1里的元素有:老鼠
      堆栈stack_path要素有:老鼠
      访问的元素是:白虎
      搜索树里的元素的顺序是:老鼠=>1、白虎=>2
      堆栈stack_1里的元素有:老鼠、白虎
      堆栈stack_path要素有:老鼠、金牛
      访问的元素是:金牛
      搜索树里的元素的顺序是:老鼠=>1、白虎=>2、金牛=>3
      堆栈stack_1里的元素有:老鼠、白虎、金牛
      堆栈stack_path要素有:老鼠、金牛、白虎
      访问的元素是:骏马
      搜索树里的元素的顺序是:老鼠=>1、白虎=>2、金牛=>3、骏马=>4
      堆栈stack_1里的元素有:老鼠、白虎、金牛、骏马
      堆栈stack_path要素有:老鼠、金牛、白虎、狡兔
      访问的元素是:青龙
      搜索树里的元素的顺序是:老鼠=>1、白虎=>2、金牛=>3、骏马=>4、青龙=>5
      堆栈stack_1里的元素有:老鼠、白虎、金牛、骏马、青龙
      堆栈stack_path要素有:老鼠、金牛、白虎、狡兔、青龙
      弹出堆栈stack_path要素:青龙
      弹出堆栈stack_1要素:青龙
      访问的元素是:狗仔
      搜索树里的元素的顺序是:老鼠=>1、白虎=>2、金牛=>3、骏马=>4、青龙=>5、狗仔=>6
      堆栈stack_1里的元素有:老鼠、白虎、金牛、骏马、狗仔
      堆栈stack_path要素有:老鼠、金牛、白虎、