Advertisement
szmelu

LISTY

Apr 27th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.81 KB | None | 0 0
  1. #include <iostream>
  2. #include <ctime>
  3. #include <stdlib.h>
  4. using namespace std;
  5.  
  6. struct node{
  7. node * next;
  8. int value;
  9. };
  10.  
  11.  
  12. void DELL(node *& H){
  13. if(H!=NULL){
  14. node * temp=new node;
  15. temp = H;
  16. H=temp->next;
  17. delete temp;
  18. }
  19. }
  20.  
  21. void ADD( node *& H, int val){
  22. node * temp = new node;
  23. temp->next=H;
  24. temp->value=val;
  25. H=temp;
  26. }
  27.  
  28.  
  29. void show(node * H){
  30. cout <<"H->";
  31. node *temp=H;
  32. while(temp!=NULL){
  33. cout << temp->value<<"->";
  34. temp=temp->next;
  35. }
  36. cout << "NULL"<<endl;
  37. }
  38.  
  39. void usunpomax(node *&H)
  40. {
  41. int x=0;
  42.  
  43. if(H!=NULL)
  44. {
  45. node *temp = new node;
  46. temp=H;
  47. while(temp!=NULL)
  48. {
  49. if(temp->value>x)
  50. {
  51. x=temp->value;
  52. temp=temp->next;
  53. }
  54. else
  55. temp=temp->next;
  56. }
  57. }
  58.  
  59. if(H!=NULL)
  60. {
  61. node *tmp= new node;
  62. tmp=H;
  63. while(tmp!=NULL)
  64. {
  65. if(tmp->value==x)
  66. {
  67. tmp->next=tmp->next->next;
  68. break;
  69.  
  70. }
  71. else
  72. tmp=tmp->next;
  73. }
  74.  
  75. }
  76.  
  77. }
  78. void przed(node *&H)
  79. {
  80. int x=0;
  81. if(H!=NULL)
  82. {
  83. node *temp= new node;
  84. temp=H;
  85. while(temp!=NULL)
  86. {
  87. if(temp->next->next==NULL)
  88. {
  89. x=temp->next->value;
  90. temp->next=temp->next->next;
  91. break;
  92. }
  93. else
  94. temp=temp->next;
  95. }
  96. }
  97. ADD(H,x);
  98. }
  99. /*void lacz(node *&H, node *&D)
  100. {
  101. int i=1;
  102. node *temp=new node;
  103. node *tmp=new node;
  104. temp=H;
  105. tmp=D;
  106. temp->next=tmp;
  107.  
  108. while(temp!=NULL && tmp!=NULL)
  109. {
  110. temp->next=tmp;
  111. tmp->next=temp->next;
  112. }
  113.  
  114.  
  115.  
  116.  
  117. }*/
  118. void zamien(node *&H, int x)
  119. {
  120. if(H!=NULL)
  121. {
  122. node *temp = new node;
  123. temp=H;
  124. while(temp->next!=NULL)
  125. {
  126.  
  127. if(x==temp->next->value)
  128. {
  129. if(temp->next->next==NULL)
  130. {
  131. cout<<"nastepnikiem jest NULL"<<endl;
  132. break;
  133. }
  134. node *tmp=new node;
  135. tmp=temp->next;
  136. node *tmp2=new node;
  137. tmp2=temp->next->next;
  138. tmp->next=tmp2->next;
  139. temp->next=tmp2;
  140. temp->next->next=tmp;
  141. break;
  142.  
  143. }
  144. else
  145. temp=temp->next;
  146. }
  147. }
  148. }
  149. void zamprzed(node *&H, int x)
  150. {
  151. if(H!=NULL)
  152. {
  153. node *temp=new node;
  154. temp=H;
  155. while(temp->next!=NULL)
  156. {
  157. if(x==H->value)
  158. {
  159. cout<<"Nie ma poprzednika"<<endl;
  160. break;
  161. }
  162. if(x==temp->next->next->value)
  163. {
  164.  
  165. node *tmp= new node;
  166. tmp=temp->next;
  167. node *tmp2=new node;
  168. tmp2=temp->next->next;
  169. tmp->next=tmp2->next;
  170. temp->next=tmp2;
  171. temp->next->next=tmp;
  172. break;
  173. }
  174. else
  175. temp=temp->next;
  176. }
  177. }
  178. }
  179. void kasn(node *&H, int x, int n)
  180. {
  181. if(H!=NULL)
  182. {
  183. node *temp=new node;
  184. temp=H;
  185. while(temp->next!=NULL)
  186. {
  187. if(temp->value==x)
  188. break;
  189. else
  190. temp=temp->next;
  191. }
  192. for(int i=0;i<n;i++)
  193. temp->next=temp->next->next;
  194. }
  195. }
  196. void odwroc(node *&H)
  197. {
  198. int i=0;
  199. if(H!=NULL)
  200. {
  201. node *newhead = NULL;
  202. node *tmp = H;
  203. while (H->next != NULL)
  204. {
  205. ADD(newhead, H->value);
  206. H = H->next;
  207. delete tmp;
  208. tmp = H;
  209. }
  210. ADD(newhead, H->value);
  211. delete tmp;
  212. H = newhead;
  213. }
  214. }
  215.  
  216. void co2(node *&H)
  217. {
  218. if(H!=NULL)
  219. {
  220. node *temp= new node;
  221. temp=H;
  222. H=H->next;
  223. delete temp;
  224. temp=H;
  225.  
  226. while(temp->next!=NULL )
  227. {
  228. if(temp->next!=NULL && temp->next->next==NULL)
  229. {
  230. temp->next=NULL;
  231. break;
  232. }
  233. temp->next=temp->next->next;
  234. temp=temp->next;
  235. }
  236. }
  237. }
  238.  
  239. void parz(node *&H)
  240. {
  241. node *tmp = H;
  242. node *wsk1 = H;
  243. node *wsk2 = H;
  244.  
  245. while (H->next != NULL && H->value % 2 == 0)
  246. {
  247. H = H->next;
  248. delete tmp;
  249. tmp = H;
  250. }
  251.  
  252. wsk2 = H;
  253. wsk1 = H;
  254.  
  255. while (tmp->next != NULL)
  256. {
  257. if (tmp->value % 2 == 0)
  258. {
  259. wsk1 = tmp;
  260. tmp = tmp->next;
  261. wsk2->next = tmp;
  262. delete wsk1;
  263. }
  264. else
  265. {
  266. wsk2 = tmp;
  267. tmp = tmp->next;
  268. }
  269. }
  270. }
  271. //ZADANIE NR1
  272. void srednia(node*&H)
  273. {
  274. if (H != NULL)
  275. {
  276. node *temp = new node;
  277. node *tmp=new node;
  278. node *tmp2 = new node;
  279. node *tmp3 = new node;
  280. temp = H;
  281. float x = 0, i = 0;
  282. float srednia = 0;
  283. while (temp != NULL)
  284. {
  285. if (temp->next == NULL)
  286. tmp = temp;
  287. x = x + temp->value;
  288. i++;
  289. temp = temp->next;
  290. }
  291. int z = 0;
  292. srednia = x / i;
  293. temp = H;
  294. cout << srednia << endl;
  295.  
  296. while (temp->next != NULL)
  297. {
  298. if (z > 1)
  299. {
  300. if (tmp3->value == temp->next->value)
  301. break;
  302. }
  303.  
  304. if (temp->next->value > srednia)
  305. {
  306. z++;
  307. if (z == 1)
  308. {
  309. tmp3 = temp->next;
  310. }
  311. tmp->next = temp->next;
  312.  
  313. tmp2 = temp->next->next;
  314. tmp->next->next = NULL;
  315. tmp = tmp->next;
  316. temp->next = tmp2;
  317.  
  318. }
  319. else
  320. temp = temp->next;
  321. }
  322.  
  323.  
  324. }
  325. }
  326. int main()
  327. {
  328. node * H = NULL;
  329. ADD(H, 5);
  330. ADD(H, 4);
  331. ADD(H, 7);
  332. ADD(H,22);
  333. ADD(H,11);
  334. ADD(H,12);
  335. show(H);
  336. przed(H);
  337. show(H);
  338. odwroc(H);
  339. show(H);
  340. parz(H);
  341. show(H);
  342. co2(H);
  343. show(H);
  344.  
  345.  
  346.  
  347. system("pause");
  348. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement