Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- #include <fstream>
- #include <conio.h>
- #include <string>
- using namespace std;
- struct elem
- {
- char inf;
- elem *ladr;
- elem *radr;
- };
- void creating_first(elem *nach,elem *kon)
- {
- nach->radr = NULL;
- nach->ladr = NULL;
- kon->ladr = NULL;
- kon->radr = NULL;
- };
- void add(char inf,elem **kon)
- {
- elem *t;
- t = new(elem);
- t->inf = inf;
- t->radr = NULL;
- t->ladr = *kon;
- (*kon)->radr = t;
- *kon = t;
- };
- void watching(elem *nach)
- {
- elem *t;
- t = nach->radr;
- while (t != NULL)
- {
- cout << t->inf ;
- t = t->radr;
- }
- cout << "\t";
- };
- int length(elem *nach)
- {
- int n=0;
- elem*t;
- t = nach;
- while (t != NULL)
- {
- n++;
- t = t->radr;
- }
- return n-1;
- };
- void insertion(int inf,elem *nach)
- {
- elem *t;
- t = new (elem);
- t->inf = inf;
- t->ladr = nach->ladr;
- t->radr = nach;
- nach->ladr->radr = t;
- nach->ladr = t;
- };
- void correction(elem *rnach,elem *wnach,int rn,int wn)
- {
- elem *rt, *wt,*wt1;
- rt = rnach->radr;
- wt = wnach->radr;
- while (wt != NULL)
- {
- wt->inf = rt->inf;
- wt1 = wt;
- wt = wt->radr;
- rt = rt->radr;
- }
- for (int i = 0; i < rn - wn; i++)
- {
- add(rt->inf, &wt1);
- rt = rt->radr;
- }
- };
- int main()
- {
- ifstream f1;
- f1.open("G:\\Новая папка\\f01.txt");
- ifstream f2;
- f2.open("G:\\Новая папка\\f02.txt");
- while (!f1.eof())
- {
- int nr, nw;
- string sright, swrong;
- //для прав
- elem *rnach = new(elem);
- elem*rkon = rnach;
- f1 >> sright;
- nr = sright.length();
- //для неправ
- elem *wnach = new(elem);
- elem*wkon = wnach;
- f2 >> swrong;
- nw = swrong.length();
- //создание списка правильных слов
- creating_first(rnach, rkon);
- for (int i = 0; i < nr; i++)
- add(sright[i],&rkon);
- cout << "list 1\t";
- int rn=length(rnach);
- watching(rnach);
- //создание списка неправильных слов
- creating_first(wnach, wkon);
- for (int i = 0; i < nw; i++)
- add(swrong[i], &wkon);
- cout << "list 2\t";
- int wn = length(wnach);
- watching(wnach);
- correction(rnach, wnach,rn,wn);
- cout << "correct list 2\t";
- watching(wnach);
- cout << endl;
- }
- _getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement