Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.25 KB | None | 0 0
  1. Дадена е еднострано поврзана листа чии што јазли содржат по еден природен број. Листата треба да се подели на две резултантни листи, т.ш. во првата листа треба да
  2. се сместат сите јазли кои содржат броеви помали или еднакви на просекот на листата (просек на листа претставува математички просек од сите природни броеви кои
  3. се јавуваат во листата), а во втората сите јазли кои содржат броеви поголеми од просекот на листата. Јазлите во резултантните листи се додаваат според редоследот
  4. по кој се појавуваат во дадената листа.
  5.  
  6. Во првиот ред од влезот е даден бројот на јазли во листата, а во вториот ред се дадени броевите од кои се составени јазлите по редослед во листата. Во првиот ред од излезот треба да се испечатат јазлите по редослед од првата резултантна листа (броеви помали или еднакви на просекот на листата), во вториот ред од втората (броеви поголеми од просекот на листата) .
  7. Sample input
  8. 5
  9. 4 2 1 5 3
  10. Sample output
  11. 2 1 3
  12. 4 5
  13.  
  14.  
  15.  
  16. import java.io.BufferedReader;
  17. import java.io.IOException;
  18. import java.io.InputStreamReader;
  19. import java.util.Iterator;
  20. import java.util.NoSuchElementException;
  21.  
  22. /**
  23. *
  24. * @author Sandra
  25. */
  26. public class Sandra_sama_resavaj {
  27. public static class SLLNode<E> {
  28. protected E element;
  29. protected SLLNode<E> succ;
  30.  
  31. public SLLNode(E elem, SLLNode<E> succ) {
  32. this.element = elem;
  33. this.succ = succ;
  34. }
  35.  
  36. @Override
  37. public String toString() {
  38. return element.toString();
  39. }
  40. }
  41.  
  42. public static class SLL<E> {
  43. private SLLNode<E> first;
  44.  
  45. public SLL() {
  46. // Construct an empty SLL
  47. this.first = null;
  48. }
  49.  
  50. public void deleteList() {
  51. first = null;
  52. }
  53.  
  54. public int length() {
  55. int ret;
  56. if (first != null) {
  57. SLLNode<E> tmp = first;
  58. ret = 1;
  59. while (tmp.succ != null) {
  60. tmp = tmp.succ;
  61. ret++;
  62. }
  63. return ret;
  64. } else
  65. return 0;
  66.  
  67. }
  68.  
  69. @Override
  70. public String toString() {
  71. String ret = new String();
  72. if (first != null) {
  73. SLLNode<E> tmp = first;
  74. ret += tmp + "->";
  75. while (tmp.succ != null) {
  76. tmp = tmp.succ;
  77. ret += tmp + "->";
  78. }
  79. } else
  80. ret = "Prazna lista!!!";
  81. return ret;
  82. }
  83.  
  84. public void insertFirst(E o) {
  85. SLLNode<E> ins = new SLLNode<E>(o, first);
  86. first = ins;
  87. }
  88.  
  89. public void insertAfter(E o, SLLNode<E> node) {
  90. if (node != null) {
  91. SLLNode<E> ins = new SLLNode<E>(o, node.succ);
  92. node.succ = ins;
  93. } else {
  94. System.out.println("Dadenot jazol e null");
  95. }
  96. }
  97.  
  98. public void insertBefore(E o, SLLNode<E> before) {
  99.  
  100. if (first != null) {
  101. SLLNode<E> tmp = first;
  102. if(first==before){
  103. this.insertFirst(o);
  104. return;
  105. }
  106. //ako first!=before
  107. while (tmp.succ != before)
  108. tmp = tmp.succ;
  109. if (tmp.succ == before) {
  110. SLLNode<E> ins = new SLLNode<E>(o, before);
  111. tmp.succ = ins;
  112. } else {
  113. System.out.println("Elementot ne postoi vo listata");
  114. }
  115. } else {
  116. System.out.println("Listata e prazna");
  117. }
  118. }
  119.  
  120. public void insertLast(E o) {
  121. if (first != null) {
  122. SLLNode<E> tmp = first;
  123. while (tmp.succ != null)
  124. tmp = tmp.succ;
  125. SLLNode<E> ins = new SLLNode<E>(o, null);
  126. tmp.succ = ins;
  127. } else {
  128. insertFirst(o);
  129. }
  130. }
  131.  
  132. public E deleteFirst() {
  133. if (first != null) {
  134. SLLNode<E> tmp = first;
  135. first = first.succ;
  136. return tmp.element;
  137. } else {
  138. System.out.println("Listata e prazna");
  139. return null;
  140. }
  141. }
  142.  
  143. public E delete(SLLNode<E> node) {
  144. if (first != null) {
  145. SLLNode<E> tmp = first;
  146. if(first ==node){
  147. return this.deleteFirst();
  148. }
  149. while (tmp.succ != node && tmp.succ.succ != null)
  150. tmp = tmp.succ;
  151. if (tmp.succ == node) {
  152. tmp.succ = tmp.succ.succ;
  153. return node.element;
  154. } else {
  155. System.out.println("Elementot ne postoi vo listata");
  156. return null;
  157. }
  158. } else {
  159. System.out.println("Listata e prazna");
  160. return null;
  161. }
  162.  
  163. }
  164.  
  165. public SLLNode<E> getFirst() {
  166. return first;
  167. }
  168.  
  169. public SLLNode<E> find(E o) {
  170. if (first != null) {
  171. SLLNode<E> tmp = first;
  172. while (tmp.element != o && tmp.succ != null)
  173. tmp = tmp.succ;
  174. if (tmp.element == o) {
  175. return tmp;
  176. } else {
  177. System.out.println("Elementot ne postoi vo listata");
  178. }
  179. } else {
  180. System.out.println("Listata e prazna");
  181. }
  182. return first;
  183. }
  184.  
  185. public Iterator<E> iterator () {
  186. // Return an iterator that visits all elements of this list, in left-to-right order.
  187. return new LRIterator<E>();
  188. }
  189.  
  190. // //////////Inner class ////////////
  191.  
  192. private class LRIterator<E> implements Iterator<E> {
  193.  
  194. private SLLNode<E> place, curr;
  195.  
  196. private LRIterator() {
  197. place = (SLLNode<E>) first;
  198. curr = null;
  199. }
  200.  
  201. public boolean hasNext() {
  202. return (place != null);
  203. }
  204.  
  205. public E next() {
  206. if (place == null)
  207. throw new NoSuchElementException();
  208. E nextElem = place.element;
  209. curr = place;
  210. place = place.succ;
  211. return nextElem;
  212. }
  213.  
  214. public void remove() {
  215. //Not implemented
  216. }
  217. }
  218.  
  219. public void mirror(){
  220. if (first != null) {
  221. //m=nextsucc, p=tmp,q=next
  222. SLLNode<E> tmp = first;
  223. SLLNode<E> newsucc = null;
  224. SLLNode<E> next;
  225.  
  226. while(tmp != null){
  227. next = tmp.succ;
  228. tmp.succ = newsucc;
  229. newsucc = tmp;
  230. tmp = next;
  231. }
  232. first = newsucc;
  233. }
  234.  
  235. }
  236.  
  237. public void merge (SLL<E> in){
  238. if (first != null) {
  239. SLLNode<E> tmp = first;
  240. while(tmp.succ != null)
  241. tmp = tmp.succ;
  242. tmp.succ = in.getFirst();
  243. }
  244. else{
  245. first = in.getFirst();
  246. }
  247. }
  248. }
  249.  
  250. public static int prosek(SLL<Integer> lista) {
  251. SLLNode<Integer> jazol1 = lista.first;
  252. SLL<Integer> lista1 = new SLL<Integer>();
  253. SLL<Integer> lista2 = new SLL<Integer>();
  254. int prosek;
  255. int suma=0;
  256.  
  257. while(jazol1!=null){
  258. if(jazol1.succ!=null){
  259. suma+=jazol1.element;
  260. jazol1 = jazol1.succ;
  261. }
  262. else{
  263. suma+=jazol1.element;
  264. }
  265. }
  266.  
  267. return suma;
  268. }
  269.  
  270.  
  271.  
  272. public static void main(String[] args) throws IOException {
  273. SLL<Integer> lista = new SLL<Integer>();
  274. int sum;
  275.  
  276. BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
  277. String s = stdin.readLine();
  278. int N = Integer.parseInt(s);
  279. s = stdin.readLine();
  280. String[] pomniza = s.split(" ");
  281.  
  282. for (int i = 0; i < N; i++) {
  283. lista.insertLast(Integer.parseInt(pomniza[i]));
  284. }
  285.  
  286. sum = prosek(lista);
  287. System.out.println("Sumata e: " + sum);
  288. }
  289. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement