Advertisement
Guest User

Untitled

a guest
Feb 14th, 2020
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.29 KB | None | 0 0
  1. package tse;
  2.  
  3. import java.util.Scanner;
  4.  
  5.  
  6. class SLLNode<E> {
  7. public E element;
  8. public SLLNode<E> succ;
  9.  
  10. public SLLNode() {
  11. }
  12.  
  13. public SLLNode(E element, SLLNode<E> succ) {
  14. super();
  15. this.element = element;
  16. this.succ = succ;
  17. }
  18.  
  19. }
  20.  
  21. class SLL<E> {
  22. public SLLNode<E> first;
  23.  
  24. public SLL() {
  25. this.first = null;
  26. }
  27.  
  28. public void insertFirst(E o) {
  29. SLLNode<E> ins = new SLLNode<E>(o, first);
  30. first = ins;
  31. }
  32.  
  33. public void insertLast(E o) {
  34. if (first != null) {
  35. SLLNode<E> tmp = first;
  36. while (tmp.succ != null)
  37. tmp = tmp.succ;
  38. SLLNode<E> ins = new SLLNode<E>(o, null);
  39. tmp.succ = ins;
  40. } else {
  41. insertFirst(o);
  42. }
  43. }
  44.  
  45. public int length() {
  46. int ret;
  47. if (first != null) {
  48. SLLNode<E> tmp = first;
  49. ret = 1;
  50. while (tmp.succ != null) {
  51. tmp = tmp.succ;
  52. ret++;
  53. }
  54. return ret;
  55. } else
  56. return 0;
  57. }
  58.  
  59. public void show() {
  60. SLLNode<E> n = first;
  61. while (n != null) {
  62. System.out.print(n.element + " ");
  63. n = n.succ;
  64. }
  65. System.out.println();
  66. }
  67.  
  68. public E deleteFirst() {
  69. if (first != null) {
  70. SLLNode<E> tmp = first;
  71. first = first.succ;
  72. return tmp.element;
  73. } else {
  74. System.out.println("Listata e prazna");
  75. return null;
  76. }
  77. }
  78.  
  79. public E delete(SLLNode<E> node) {
  80. if (first != null) {
  81. SLLNode<E> tmp = first;
  82. if (first == node) {
  83. return this.deleteFirst();
  84. }
  85. while (tmp.succ != node && tmp.succ.succ != null)
  86. tmp = tmp.succ;
  87. if (tmp.succ == node) {
  88. tmp.succ = tmp.succ.succ;
  89. return node.element;
  90. } else {
  91. System.out.println("Elementot ne postoi vo listata");
  92. return null;
  93. }
  94. } else {
  95. System.out.println("Listata e prazna");
  96. return null;
  97. }
  98.  
  99. }
  100. public void insertBefore(E o, SLLNode<E> before) {
  101.  
  102. if (first != null) {
  103. SLLNode<E> tmp = first;
  104. if (first == before) {
  105. this.insertFirst(o);
  106. return;
  107. }
  108. //ako first!=before
  109. while (tmp.succ != before)
  110. tmp = tmp.succ;
  111. if (tmp.succ == before) {
  112. SLLNode<E> ins = new SLLNode<E>(o, before);
  113. tmp.succ = ins;
  114. } else {
  115. System.out.println("Elementot ne postoi vo listata");
  116. }
  117. } else {
  118. System.out.println("Listata e prazna");
  119. }
  120. }
  121. public void insertAfter(E o, SLLNode<E> node) {
  122. if (node != null) {
  123. SLLNode<E> ins = new SLLNode<E>(o, node.succ);
  124. node.succ = ins;
  125. } else {
  126. System.out.println("Dadenot jazol e null");
  127. }
  128. }
  129.  
  130.  
  131. }
  132.  
  133. public class sadasd {
  134.  
  135. public static void main(String[] args) {
  136. Scanner s=new Scanner (System.in);
  137. SLL<Vozac> sll= new SLL<>();
  138. int n=s.nextInt();
  139.  
  140. for(int i=0;i<n;i++)
  141. {
  142. Vozac b = new Vozac();
  143.  
  144.  
  145. b.ime=s.next();
  146. b.gorivo=s.nextInt();
  147.  
  148.  
  149. sll.insertLast(b);
  150. }
  151.  
  152.  
  153.  
  154. SLLNode<Vozac> dvizi=sll.first;
  155. int m=s.nextInt();
  156. for(int j=0;j<m;j++){
  157. Vozac d = new Vozac();
  158.  
  159. dvizi=sll.first;
  160. d.ime=s.next();
  161. d.gorivo=s.nextInt();
  162.  
  163.  
  164.  
  165. while(dvizi.succ!=null)
  166. {
  167. if(dvizi.element.ime.equals(d.ime))
  168. {
  169.  
  170. SLLNode<Vozac> tmp=dvizi;
  171. int gor=d.gorivo;
  172. int sss=dvizi.element.gorivo-d.gorivo;
  173.  
  174. for(int i=0;i<gor;i++)
  175. {
  176.  
  177. if(tmp.succ==null)
  178. {
  179. break;
  180. }
  181.  
  182. tmp=tmp.succ;
  183. d.gorivo-=1;
  184.  
  185. }
  186. d.gorivo=sss;
  187. sll.insertAfter(d,tmp);
  188. sll.delete(dvizi);
  189. dvizi=dvizi.succ;
  190.  
  191.  
  192.  
  193. break;
  194.  
  195.  
  196.  
  197. }else{
  198. dvizi=dvizi.succ;
  199.  
  200. }
  201.  
  202. }
  203. SLLNode<Vozac>pecati =sll.first;
  204.  
  205.  
  206. while(pecati!=null)
  207. {
  208. System.out.print(pecati.element.ime + "(" + pecati.element.gorivo + ")-> ");
  209. pecati=pecati.succ;
  210. }
  211. System.out.print("\n");
  212.  
  213.  
  214. }
  215.  
  216.  
  217.  
  218. }
  219. }
  220.  
  221. class Vozac
  222. {
  223. public String ime;
  224. public int gorivo;
  225.  
  226.  
  227.  
  228.  
  229. public Vozac(String ime,int gorivo) {
  230. super();
  231. this.ime = ime;
  232. this.gorivo=gorivo;
  233.  
  234. }
  235.  
  236.  
  237.  
  238. public Vozac() {
  239.  
  240. }
  241. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement