DilyaraL

16.19

Apr 11th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.15 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <fstream>
  4.  
  5. using namespace std;
  6.  
  7. struct node
  8. {
  9. int info;
  10. node *next;
  11. };
  12.  
  13. void create_listFile(node *&head, ifstream &f)
  14. {
  15.  
  16. head = NULL;
  17. int info = 0;
  18. while (f >> info)
  19. {
  20. node *q = new node;
  21. q->info=info;
  22. q->next = head;
  23. head = q;
  24. }
  25. }
  26.  
  27. bool blank(node * head)
  28. {
  29. return head == NULL;
  30. }
  31.  
  32. void show_list(node* head)
  33. {
  34. if (blank(head))
  35. cout << "Пусто" << endl;
  36. else
  37. {
  38. node* q = head;
  39. while (q!=NULL)
  40. {
  41. cout << q->info << ' ';
  42. q = q->next;
  43. }
  44. cout << endl;
  45. }
  46. }
  47.  
  48. void deletFirstEl(node *&head)//A
  49. {
  50. node *p = head;
  51. head = head->next;
  52. p->next = NULL;
  53. delete p;
  54. }
  55.  
  56. void deletSecondEl(node *&head)//Б
  57. {
  58. node *q = head;
  59. node *p = new node;
  60. if (blank(head))
  61. cout << "Пусто" << endl;
  62. else
  63. {
  64. if (head->next == NULL)
  65. cout << "Короткий список" << endl;
  66. else
  67. {
  68. p = q->next;
  69. q->next = q->next->next;
  70. show_list(head);
  71. }
  72.  
  73. }
  74. }
  75.  
  76. void B(node *&head, int x)//B
  77. {
  78. node *q = head;
  79. node *p = new node;
  80. if (blank(head))
  81. cout << "Пусто" << endl;
  82. else
  83. {
  84. while (q != NULL)
  85. {
  86. if (q->info == x&& q->next != NULL)
  87. {
  88. p = q->next;
  89. q->next = q->next->next;
  90. }
  91. q = q->next;
  92. }
  93. show_list(head);
  94. }
  95. }
  96.  
  97. void endelemet(node *&head)//Г
  98. {
  99. node *q = head;
  100. node *p = new node;
  101. if (blank(head))
  102. cout << "Пусто" << endl;
  103. else
  104. {
  105. if (head->next== NULL)
  106. {
  107. head = NULL;
  108. q = q->next;
  109. delete q;
  110. }
  111. else
  112. {
  113. while (q->next->next != NULL)
  114. q = q->next;
  115.  
  116. p = q->next;
  117. q->next = NULL;
  118. delete p;
  119. }
  120. show_list(head);
  121. }
  122. }
  123.  
  124. void D(node *&head)
  125. {
  126. node *q = head;
  127. node *p = new node;
  128. if (blank(head))
  129. cout << "Пусто" << endl;
  130. else
  131. {
  132. if (head->next == NULL)
  133. {
  134. if (q->info < 0)
  135. {
  136. head = NULL;
  137. q = q->next;
  138. delete q;
  139. }
  140. }
  141. else
  142. {
  143. if (q->info < 0)
  144. head = q->next;
  145. else
  146. {
  147. while (q != NULL && q->info > 0)
  148. {
  149. p = q;
  150. q = q->next;
  151. }
  152. if (q != NULL && q->info < 0)
  153. {
  154. p->next = q->next;
  155. q->next = NULL;
  156. delete q;
  157. }
  158. }
  159.  
  160.  
  161.  
  162. }
  163. show_list(head);
  164. }
  165. }
  166.  
  167. void E(node *&head)
  168. {
  169. node *q = head, *mark = head;
  170. node *p = new node;
  171. if (blank(head))
  172. cout << "Пусто" << endl;
  173. else
  174. {
  175. if (head->next == NULL)//список из одного элемента
  176. {
  177. if (q->info < 0)
  178. {
  179. head = NULL;
  180. q = q->next;
  181. delete q;
  182. }
  183. }
  184. else
  185. {
  186. while (q->info < 0)
  187. {
  188. head = q->next;
  189. q = head;
  190. }
  191. while (q != NULL)
  192. {
  193. if (q->info < 0)
  194. {
  195. mark->next = q->next;
  196. q->next = NULL;
  197. q=mark->next;
  198. }
  199. else
  200. {
  201. mark = q;
  202. q = q->next;
  203. }
  204. }
  205. }
  206. show_list(head);
  207. }
  208. }
  209.  
  210. int main()
  211. {
  212. setlocale(LC_ALL, "Russian");
  213. node * head = NULL;
  214. ifstream in("Text.txt");
  215. create_listFile(head, in);
  216. show_list(head);
  217. //deletFirstEl(head);//A
  218. //deletSecondEl(head);//Б
  219. //B(head, 3);//B
  220. //endelemet(head);//Г
  221. //D(head);
  222. E(head);
  223.  
  224. system("pause");
  225. return 0;
  226. }
Advertisement
Add Comment
Please, Sign In to add comment