Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Mar 30th, 2012  |  syntax: None  |  size: 2.78 KB  |  views: 18  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. if (F1.Info == F2.Info){
  2.                                         #region если вхождение в самом начале
  3.                                        
  4.                                         Debug.WriteLine("предположительно есть совпадение в начале");
  5.                                        
  6.                                         p = F1;
  7.                                         pp = F2;
  8.                                        
  9.                                         //Node t = p;
  10.                                        
  11.                                         matched = false;
  12.                                        
  13.                                         while (pp!=null && p!=null){
  14.                                                
  15.                                                 matched = true;
  16.                                                
  17.                                                 if (p.Info != pp.Info) {
  18.                                                         matched = false;
  19.                                                         break;
  20.                                                 }
  21.                                                 //else{
  22.                                                 //matched = true;
  23.                                                 p=p.Link;
  24.                                                 pp=pp.Link;
  25.                                                 //}
  26.                                                 Debug.WriteLine("!!! p ="+p);
  27.                                         }
  28.                                        
  29.                                         // bp
  30.                                         if (matched) {
  31.  
  32.                                                 // нашли вхождение
  33.                                                 Debug.WriteLine("и правда, есть вхождение в начале, меняем");
  34.                                                 q = (Node)F3.Clone();
  35.                                                 F1 = q;
  36.                                                 while (q.Link!=null){
  37.                                                         q=q.Link;
  38.                                                 }
  39.                                                 q.Link = p;
  40.                                                
  41.                                                 prep = q;
  42.                                                 p = q.Link;
  43.                                                 //Debug.WriteLine("prep ="+prep.Info+" p="+p.Info);
  44.                                         }
  45.                                        
  46.                                         else {
  47.                                                 Debug.WriteLine("встретилась "+p.Info+"ложная тревога, переходим в "+F1.Link.Info);
  48.                                                 prep = F1;
  49.                                                 p = F1.Link;
  50.                                         }
  51.                                        
  52.                                         #endregion
  53.                                 }
  54.                                 /*
  55.                                 else {
  56.                                         prep = F1;
  57.                                         p = F1.Link;
  58.                                 }
  59.                                  */
  60.                                
  61.                                 #region середина и конец
  62.                                
  63.                                 while (p!=null){
  64.                                         Debug.WriteLine(p.Info+"");
  65.                                         if (p.Info == F2.Info){
  66.                                                 Debug.WriteLine("преположительно вхождение");
  67.                                                 Debug.WriteLine(p+"");
  68.                                                 // запомнили начало
  69.                                                 Node s = p;
  70.                                                
  71.                                                 pp = F2;
  72.                                                
  73.                                                 matched = false;
  74.                                                
  75.                                                 while (pp!=null && p!=null){
  76.                                                        
  77.                                                         //if (){
  78.                                                                
  79.                                                                 matched = true;
  80.                                                                 if (pp.Info!=p.Info) {
  81.                                                                         Debug.WriteLine(pp.Info + "!="+p.Info);
  82.                                                                         matched = false;
  83.                                                                         break;
  84.                                                                 }
  85.                                                                
  86.                                                                
  87.                                                                
  88.                                                                 matched = true;
  89.                                                                 //else {
  90.                                                                 //      matched = true;
  91.                                                                 pp = pp.Link;
  92.                                                                 p = p.Link;
  93.                                                                 if (pp == null && matched){
  94.                                                                         matched = true;
  95.                                                                         break;
  96.                                                                 }
  97.                                                                
  98.                                                                 if (p == null) {
  99.                                                                         matched = false;
  100.                                                                         break;
  101.                                                                 }
  102.                                                                
  103.                                                                 //}
  104.                                                                
  105.                                                                 //matched = true;
  106.                                                         //}
  107.                                                         /*
  108.                                                         else {
  109.                                                                 matched = false;
  110.                                                                 break;
  111.                                                         }
  112.                                                         */
  113.                                                 }
  114.                                                
  115.                                                 if (matched) {
  116.                                                         Debug.WriteLine("и правда, меняем");
  117.                                                         q = (Node)F3.Clone();
  118.                                                        
  119.                                                         prep.Link = q;
  120.                                                        
  121.                                                         while (q.Link!=null){
  122.                                                                 q=q.Link;
  123.                                                         }
  124.                                                        
  125.                                                         q.Link = p;
  126.                                                         //prep.Link = q;
  127.                                                         prep = q;
  128.                                                         //p = p.Link;
  129.                                                        
  130.                                                         Debug.WriteLine("prep = "+prep + " p = "+p);
  131.                                                 }
  132.                                                
  133.                                                 else {
  134.                                                        
  135.                                                         prep = s;
  136.                                                         p = s.Link;
  137.                                                 }
  138.                                         }
  139.                                        
  140.                                         else {
  141.                                                 prep = p;
  142.                                                 p = p.Link;
  143.                                                
  144.                                         }
  145.                                        
  146.                                 }
  147.                                
  148.                                 #endregion