Advertisement
Guest User

Untitled

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