Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 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. if(slowo[slowo.size()-1] == '?' || slowo[slowo.size()-1] == '!' || slowo[slowo.size()-1] == '.')
  77. {
  78. temp = slowo[slowo.size()-1];
  79. slowo.pop_back();
  80. push(st, slowo);
  81. break;
  82. }
  83. push(st,slowo);
  84. file>>slowo;
  85. if(file.eof()) break;
  86. }
  87.  
  88. ostringstream ss;
  89. while(st!=nullptr)
  90. {
  91. ss<<import(st)<<" ";
  92. pop(st);
  93. }
  94. zdanie=ss.str();
  95. zdanie.pop_back();
  96. zdanie.push_back(temp);
  97. ss.str("");
  98. add_tail(zdanie,dl);
  99. }
  100. file.close();
  101. }
  102.  
  103. void push(stos* &st, string new_data)
  104. {
  105. stos* dodawany_element=new stos;
  106. dodawany_element->data=new_data;
  107. dodawany_element->next=st;
  108. st=dodawany_element;
  109. }
  110.  
  111. void pop(stos* &st)
  112. {
  113. stos* temp = st;
  114. st=st->next;
  115. delete temp;
  116. }
  117.  
  118. string import(stos* st)
  119. {
  120. string data_to_return=st->data;
  121. return data_to_return;
  122. }
  123.  
  124. void add_tail(string n_d, dlist &dl)
  125. {
  126. element* n_e = create_element(n_d);
  127. if(dl.liczba_elementow==0)
  128. dl.head=n_e;
  129. else
  130. dl.tail->next=n_e;
  131. n_e->prev=dl.tail;
  132. dl.tail=n_e;
  133. dl.liczba_elementow++;
  134. }
  135.  
  136. void wyswietl_liste(dlist dl)
  137. {
  138. element* temp=dl.head;
  139. do{
  140. cout<<temp->data<<endl;
  141. temp=temp->next;
  142. }while(temp!=nullptr);
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement