Advertisement
Guest User

Untitled

a guest
Mar 30th, 2012
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.78 KB | None | 0 0
  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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement