Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.72 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement