SHARE
TWEET

Untitled

a guest May 23rd, 2019 69 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <sstream>
  5. #include <cstdlib>
  6.  
  7. using namespace std;
  8.  
  9. struct element
  10. {
  11.     string data;
  12.     element* next;
  13.     element* prev;
  14. };
  15.  
  16. struct dlist
  17. {
  18.     element* head;
  19.     element* tail;
  20.     int liczba_elementow;
  21. };
  22.  
  23. struct stos
  24. {
  25.     string data;
  26.     stos* next;
  27. };
  28.  
  29. dlist create_empty_list();
  30. element* create_element(string n_d);
  31. void import_data(string patch, dlist &dl);
  32. void push(stos* &st, string new_data);
  33. void pop(stos* &st);
  34. string import(stos* st);
  35. void add_tail(string n_d, dlist &dl);
  36. void wyswietl_liste(dlist dl);
  37.  
  38. int main()
  39. {
  40.     dlist dl = create_empty_list();
  41.     import_data("inversed.txt",dl);
  42.     wyswietl_liste(dl);
  43.     system("pause");
  44.     return 0;
  45. }
  46.  
  47. dlist create_empty_list()
  48. {
  49.     dlist dl;
  50.     dl.head = nullptr;
  51.     dl.tail = nullptr;
  52.     dl.liczba_elementow=0;
  53.     return dl;
  54. }
  55.  
  56. element* create_element(string n_d)
  57. {
  58.     element* n_e = new element;
  59.     n_e->data=n_d;
  60.     n_e->next=nullptr;
  61.     n_e->prev=nullptr;
  62.     return n_e;
  63. }
  64.  
  65. void import_data(string patch, dlist &dl)
  66. {
  67.     stos* st = nullptr;
  68.     ifstream file;
  69.     string slowo, zdanie;
  70.     file.open(patch);
  71.     char temp;
  72.     while(file>>slowo)
  73.     {
  74.         while(1)
  75.         {
  76.             temp=' ';
  77.             if(slowo[slowo.size()-1] == '?' || slowo[slowo.size()-1] == '!' || slowo[slowo.size()-1] == '.')
  78.             {
  79.                 temp = slowo[slowo.size()-1];
  80.                 slowo.pop_back();
  81.                 push(st, slowo);
  82.                 break;
  83.             }
  84.             push(st,slowo);
  85.             file>>slowo;
  86.             if(file.eof()) break;
  87.         }
  88.  
  89.         ostringstream ss;
  90.         while(st!=nullptr)
  91.         {
  92.             ss<<import(st)<<" ";
  93.             pop(st);
  94.         }
  95.         zdanie=ss.str();
  96.         zdanie.pop_back();
  97.         zdanie.push_back(temp);
  98.         ss.str("");
  99.         add_tail(zdanie,dl);
  100.     }
  101.     file.close();
  102. }
  103.  
  104. void push(stos* &st, string new_data)
  105. {
  106.     stos* dodawany_element=new stos;
  107.     dodawany_element->data=new_data;
  108.     dodawany_element->next=st;
  109.     st=dodawany_element;
  110. }
  111.  
  112. void pop(stos* &st)
  113. {
  114.     stos* temp = st;
  115.     st=st->next;
  116.     delete temp;
  117. }
  118.  
  119. string import(stos* st)
  120. {
  121.     string data_to_return=st->data;
  122.     return data_to_return;
  123. }
  124.  
  125. void add_tail(string n_d, dlist &dl)
  126. {
  127.     element* n_e = create_element(n_d);
  128.     if(dl.liczba_elementow==0)
  129.         dl.head=n_e;
  130.     else
  131.         dl.tail->next=n_e;
  132.     n_e->prev=dl.tail;
  133.     dl.tail=n_e;
  134.     dl.liczba_elementow++;
  135. }
  136.  
  137. void wyswietl_liste(dlist dl)
  138. {
  139.     element* temp=dl.head;
  140.     do{
  141.         cout<<temp->data<<endl;
  142.         temp=temp->next;
  143.     }while(temp!=nullptr);
  144. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top