Advertisement
Guest User

Untitled

a guest
Apr 28th, 2015
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.22 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <fstream>
  4. #include <conio.h>
  5. #include <string>
  6. using namespace std;
  7. struct elem
  8. {
  9.     char inf;
  10.     elem *ladr;
  11.     elem *radr;
  12. };
  13. void creating_first(elem *nach,elem *kon)
  14. {  
  15.     nach->radr = NULL;
  16.     nach->ladr = NULL; 
  17.     kon->ladr = NULL;
  18.     kon->radr = NULL;
  19.  
  20. };
  21. void add(char inf,elem **kon)
  22. {
  23.     elem *t;
  24.     t = new(elem);
  25.     t->inf = inf;
  26.     t->radr = NULL;
  27.     t->ladr = *kon;
  28.     (*kon)->radr = t;
  29.     *kon = t;
  30.    
  31. };
  32. void watching(elem *nach)
  33. {
  34.     elem *t;
  35.     t = nach->radr;
  36.     while (t != NULL)
  37.     {
  38.         cout << t->inf ;
  39.         t = t->radr;
  40.     }
  41.     cout << "\t";
  42. };
  43. int length(elem *nach)
  44. {
  45.     int n=0;
  46.     elem*t;
  47.     t = nach;
  48.     while (t != NULL)
  49.     {
  50.         n++;
  51.         t = t->radr;
  52.     }
  53.     return n-1;
  54. };
  55. void insertion(int inf,elem *nach)
  56. {
  57.     elem *t;
  58.     t = new (elem);
  59.     t->inf = inf;
  60.     t->ladr = nach->ladr;
  61.     t->radr = nach;
  62.     nach->ladr->radr = t;
  63.     nach->ladr = t;
  64. };
  65. void correction(elem *rnach,elem *wnach,int rn,int wn)
  66. {
  67.     elem *rt, *wt,*wt1;
  68.     rt = rnach->radr;
  69.     wt = wnach->radr;
  70.     while (wt != NULL)
  71.     {
  72.         wt->inf = rt->inf;
  73.         wt1 = wt;
  74.         wt = wt->radr;
  75.         rt = rt->radr;
  76.     }
  77.     for (int i = 0; i < rn - wn; i++)
  78.     {
  79.         add(rt->inf, &wt1);
  80.         rt = rt->radr;
  81.     }
  82. };
  83.  
  84. int main()
  85. {
  86.     ifstream f1;
  87.     f1.open("G:\\Новая папка\\f01.txt");
  88.     ifstream f2;
  89.     f2.open("G:\\Новая папка\\f02.txt");
  90.     while (!f1.eof())
  91.     {
  92.         int nr, nw;
  93.         string sright, swrong;
  94.        
  95.         //для прав
  96.         elem *rnach = new(elem);
  97.         elem*rkon = rnach;
  98.         f1 >> sright;
  99.         nr = sright.length();
  100.        
  101.         //для неправ
  102.         elem *wnach = new(elem);
  103.         elem*wkon = wnach;
  104.         f2 >> swrong;
  105.         nw = swrong.length();
  106.        
  107.         //создание списка правильных слов
  108.         creating_first(rnach, rkon);
  109.         for (int i = 0; i < nr; i++)
  110.             add(sright[i],&rkon);
  111.         cout << "list 1\t";
  112.         int rn=length(rnach);
  113.         watching(rnach);
  114.  
  115.        
  116.         //создание списка неправильных слов
  117.         creating_first(wnach, wkon);
  118.         for (int i = 0; i < nw; i++)
  119.             add(swrong[i], &wkon);
  120.         cout << "list 2\t";
  121.         int wn = length(wnach);
  122.         watching(wnach);
  123.        
  124.         correction(rnach, wnach,rn,wn);
  125.         cout << "correct list 2\t";
  126.         watching(wnach);
  127.         cout << endl;
  128.     }
  129.     _getch();
  130.     return 0;
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement