Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if (F1.Info == F2.Info){
- #region если вхождение в самом начале
- Debug.WriteLine("предположительно есть совпадение в начале");
- p = F1;
- pp = F2;
- //Node t = p;
- matched = false;
- while (pp!=null && p!=null){
- matched = true;
- if (p.Info != pp.Info) {
- matched = false;
- break;
- }
- //else{
- //matched = true;
- p=p.Link;
- pp=pp.Link;
- //}
- Debug.WriteLine("!!! p ="+p);
- }
- // bp
- if (matched) {
- // нашли вхождение
- Debug.WriteLine("и правда, есть вхождение в начале, меняем");
- q = (Node)F3.Clone();
- F1 = q;
- while (q.Link!=null){
- q=q.Link;
- }
- q.Link = p;
- prep = q;
- p = q.Link;
- //Debug.WriteLine("prep ="+prep.Info+" p="+p.Info);
- }
- else {
- Debug.WriteLine("встретилась "+p.Info+"ложная тревога, переходим в "+F1.Link.Info);
- prep = F1;
- p = F1.Link;
- }
- #endregion
- }
- /*
- else {
- prep = F1;
- p = F1.Link;
- }
- */
- #region середина и конец
- while (p!=null){
- Debug.WriteLine(p.Info+"");
- if (p.Info == F2.Info){
- Debug.WriteLine("преположительно вхождение");
- Debug.WriteLine(p+"");
- // запомнили начало
- Node s = p;
- pp = F2;
- matched = false;
- while (pp!=null && p!=null){
- //if (){
- matched = true;
- if (pp.Info!=p.Info) {
- Debug.WriteLine(pp.Info + "!="+p.Info);
- matched = false;
- break;
- }
- matched = true;
- //else {
- // matched = true;
- pp = pp.Link;
- p = p.Link;
- if (pp == null && matched){
- matched = true;
- break;
- }
- if (p == null) {
- matched = false;
- break;
- }
- //}
- //matched = true;
- //}
- /*
- else {
- matched = false;
- break;
- }
- */
- }
- if (matched) {
- Debug.WriteLine("и правда, меняем");
- q = (Node)F3.Clone();
- prep.Link = q;
- while (q.Link!=null){
- q=q.Link;
- }
- q.Link = p;
- //prep.Link = q;
- prep = q;
- //p = p.Link;
- Debug.WriteLine("prep = "+prep + " p = "+p);
- }
- else {
- prep = s;
- p = s.Link;
- }
- }
- else {
- prep = p;
- p = p.Link;
- }
- }
- #endregion
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement