Natasha10

DelumnoResenaSoglaski

Feb 9th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.81 KB | None | 0 0
  1. package brisiDuplikat;
  2.  
  3.  
  4. import java.io.BufferedReader;
  5. import java.io.InputStreamReader;
  6. import java.io.IOException;
  7.  
  8. class DLLNode<E> {
  9. protected E element;
  10. protected DLLNode<E> pred, succ;
  11.  
  12. public DLLNode(E elem, DLLNode<E> pred, DLLNode<E> succ) {
  13. this.element = elem;
  14. this.pred = pred;
  15. this.succ = succ;
  16. }
  17.  
  18. @Override
  19. public String toString() {
  20. return element.toString();
  21. }
  22. }
  23.  
  24. class DLL<E> {
  25. private DLLNode<E> first, last;
  26.  
  27. public DLL() {
  28. // Construct an empty SLL
  29. this.first = null;
  30. this.last = null;
  31. }
  32.  
  33. public void deleteList() {
  34. first = null;
  35. last = null;
  36. }
  37. public int length() {
  38. int ret;
  39. if (first != null) {
  40. DLLNode<E> tmp = first;
  41. ret = 1;
  42. while (tmp.succ != null) {
  43. tmp = tmp.succ;
  44. ret++;
  45. }
  46. return ret;
  47. } else
  48. return 0;
  49.  
  50. }
  51.  
  52. public DLLNode<E> find(E o) {
  53. if (first != null) {
  54. DLLNode<E> tmp = first;
  55. while (tmp.element != o && tmp.succ != null)
  56. tmp = tmp.succ;
  57. if (tmp.element == o) {
  58. return tmp;
  59. } else {
  60. System.out.println("Elementot ne postoi vo listata");
  61. }
  62. } else {
  63. System.out.println("Listata e prazna");
  64. }
  65. return first;
  66. }
  67. public void insertFirst(E o) {
  68. DLLNode<E> ins = new DLLNode<E>(o, null, first);
  69. if (first == null)
  70. last = ins;
  71. else
  72. first.pred = ins;
  73. first = ins;
  74. }
  75.  
  76. public void insertLast(E o) {
  77. if (first == null)
  78. insertFirst(o);
  79. else {
  80. DLLNode<E> ins = new DLLNode<E>(o, last, null);
  81. last.succ = ins;
  82. last = ins;
  83. }
  84. }
  85.  
  86. public void insertAfter(E o, DLLNode<E> after) {
  87. if(after==last){
  88. insertLast(o);
  89. return;
  90. }
  91. DLLNode<E> ins = new DLLNode<E>(o, after, after.succ);
  92. after.succ.pred = ins;
  93. after.succ = ins;
  94. }
  95.  
  96. public void insertBefore(E o, DLLNode<E> before) {
  97. if(before == first){
  98. insertFirst(o);
  99. return;
  100. }
  101. DLLNode<E> ins = new DLLNode<E>(o, before.pred, before);
  102. before.pred.succ = ins;
  103. before.pred = ins;
  104. }
  105.  
  106. public E deleteFirst() {
  107. if (first != null) {
  108. DLLNode<E> tmp = first;
  109. first = first.succ;
  110. if (first != null) first.pred = null;
  111. if (first == null)
  112. last = null;
  113. return tmp.element;
  114. } else
  115. return null;
  116. }
  117.  
  118. public E deleteLast() {
  119. if (first != null) {
  120. if (first.succ == null)
  121. return deleteFirst();
  122. else {
  123. DLLNode<E> tmp = last;
  124. last = last.pred;
  125. last.succ = null;
  126. return tmp.element;
  127. }
  128. }
  129. // else throw Exception
  130. return null;
  131. }
  132.  
  133. public E delete(DLLNode<E> node) {
  134. if(node==first){
  135. deleteFirst();
  136. return node.element;
  137. }
  138. if(node==last){
  139. deleteLast();
  140. return node.element;
  141. }
  142. node.pred.succ = node.succ;
  143. node.succ.pred = node.pred;
  144. return node.element;
  145. }
  146.  
  147. @Override
  148. public String toString() {
  149. String ret = new String();
  150. if (first != null) {
  151. DLLNode<E> tmp = first;
  152. ret += tmp + " ";
  153. while (tmp.succ != null) {
  154. tmp = tmp.succ;
  155. ret += tmp + " ";
  156. }
  157. }
  158. return ret;
  159. }
  160. public String toStringR() {
  161. String ret = new String();
  162. if (last != null) {
  163. DLLNode<E> tmp = last;
  164. ret += tmp + "<->";
  165. while (tmp.pred != null) {
  166. tmp = tmp.pred;
  167. ret += tmp + "<->";
  168. }
  169. } else
  170. ret = "Prazna lista!!!";
  171. return ret;
  172. }
  173.  
  174. public DLLNode<E> getFirst() {
  175. return first;
  176. }
  177.  
  178. public DLLNode<E> getLast() {
  179.  
  180. return last;
  181. }
  182. }
  183.  
  184.  
  185.  
  186. public class BrisiDuplikati {
  187.    
  188.     public static void brisiDuplikatiSamoglaski(DLL<Character> lista) {
  189.        
  190.         DLLNode<Character> dvizi=lista.getFirst();
  191.        
  192.        
  193.         while(dvizi.succ!=null) {
  194.             if(dvizi.succ.succ==null) {
  195.                 if(dvizi.element==dvizi.succ.element) {
  196.                     dvizi.succ=null;
  197.                     break;
  198.                 }
  199.             }
  200.             if((dvizi.element==dvizi.succ.element)) {  
  201.                 if(dvizi.succ.succ!=null) {
  202.                 dvizi.succ=dvizi.succ.succ;
  203.                 dvizi.succ.succ.pred=dvizi;
  204.                 }
  205.             }
  206.             else {
  207.                 dvizi=dvizi.succ;
  208.             }
  209.         }
  210.         System.out.println(lista);
  211.         DLLNode<Character> dvizi1=lista.getFirst();
  212.        
  213.         while(dvizi1.succ!=null)
  214.         {
  215.             if(dvizi1.element=='a' || dvizi1.element=='e' || dvizi1.element=='i' ||dvizi1.element=='o' || dvizi1.element=='u') {
  216.                 if(dvizi1.succ.element=='a' || dvizi1.succ.element=='e' || dvizi1.succ.element=='i' ||dvizi1.succ.element=='o' || dvizi1.succ.element=='u') {
  217.                    
  218.                     dvizi1.succ=dvizi1.succ.succ;
  219.                     dvizi1.succ.succ.pred=dvizi1;
  220.                 }
  221.                 else {
  222.                     dvizi1=dvizi1.succ;
  223.                 }
  224.             }
  225.             else {
  226.                 if(dvizi1.succ.element=='a' || dvizi1.succ.element=='e' || dvizi1.succ.element=='i' ||dvizi1.succ.element=='o' || dvizi1.succ.element=='u') {
  227.                     dvizi1=dvizi1.succ;
  228.                 }
  229.                 else {
  230.                     dvizi1.succ=dvizi1.succ.succ;
  231.                     dvizi1.succ.succ.pred=dvizi1;
  232.                 }
  233.             }
  234.         }
  235.        
  236.        
  237.        
  238.        
  239.         System.out.print(lista);
  240.        
  241.     }
  242.  
  243.     public static void main(String[] args) throws IOException {
  244.         // TODO Auto-generated method stub
  245.         DLL<Character> lista=new DLL<>();
  246.         BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  247.         String line=br.readLine();
  248.         String[] pomniza=line.split(" ");
  249.         for(int i=0;i<pomniza.length;i++) {
  250.            
  251.             lista.insertLast(pomniza[i].charAt(0));
  252.            
  253.         }
  254.        
  255.         brisiDuplikatiSamoglaski(lista);
  256.        
  257.        
  258.        
  259.  
  260.     }
  261.  
  262. }
Advertisement
Add Comment
Please, Sign In to add comment