mardi 5 mai 2015

Methoden Linked List Methoden können nicht aufgerufen werden

Guten Tag,

sitze jetzt schon fast eine Stunde an meinem Problem. Und zwar kann ich meine Methoden nicht aufrufen

Java Code:

  1. public class LinkedList<T> { @SuppressWarnings("hiding")
  2. private class ListElement<T> {
  3. private T value;
  4. private ListElement<T> next; // = null
  5. private ListElement<T> prev; // = null
  6.  
  7. public ListElement(T value) {
  8. this.value = value;
  9. }
  10. }
  11.  
  12.  
  13. private ListElement<T> first; // =null
  14. private ListElement<T> last; // =null
  15. private int size; // =0
  16.  
  17.  
  18. // Default Konstruktor reicht aus.
  19.  
  20.  
  21. public void addFirst(T value) {
  22. ListElement<T> le = new ListElement<T>(value);
  23.  
  24.  
  25. if (size == 0) {
  26. first = le;
  27. last = le;
  28. } //liste nicht leer
  29. else {
  30. le.next = first;
  31. first.prev = le;
  32. first = le;
  33. }
  34. size++;
  35. }
  36. public void addLast(T value){
  37. ListElement<T> le = new ListElement<T>(value);
  38.  
  39. if (size == 0){
  40. addFirst(value);
  41. }
  42. else{
  43. last.next = le;
  44. le.prev = last;
  45. last = le;
  46. }
  47. size++;
  48. }
  49. public void add(int index, T value){
  50. ListElement<T> le = new ListElement<T>(value);
  51. assert index >= 0 && index < size;
  52.  
  53. if(index == 0){
  54. addFirst(value);
  55. }
  56. else if(index == (size-1)){
  57. addLast(value);
  58. }
  59. else{
  60. ListElement<T> current = first;
  61. while (index > 0) {
  62. index--;
  63. current = current.next;
  64. }
  65. le.next = current.next;
  66. current.next.prev = le;
  67. current.next = le;
  68. le.prev = current;
  69. }
  70. size++;
  71. }
  72.  
  73. public void removeFirst(){
  74. assert size != 0; // leere liste
  75. if(size == 1){
  76. first = null;
  77. last = null;
  78. }else{
  79. first = first.next;
  80. }
  81. size--;
  82. }
  83.  
  84. public void removeLast(){
  85. assert size != 0; // leere liste
  86. if (size == 1){
  87. first = null;
  88. last = null;
  89. }else{
  90. last.prev.next = null;
  91. last = last.prev;
  92. }
  93. size--;
  94. }
  95.  
  96. public void remove(int index){
  97. assert index != 0; // leere liste
  98. if (index == 1){
  99. removeFirst();
  100. }else if(index == (size-1)){
  101. removeLast();
  102. }else{
  103. ListElement<T> current = first;
  104. while (index > 0) {
  105. index--;
  106. current = current.next;
  107. }
  108. current.prev.next = current.next;
  109. current.next.prev = current.prev;
  110. }
  111. size--;
  112. }
  113.  
  114.  
  115.  
  116. public T get(int index) {
  117. assert index >= 0 && index < size; //index 1 = 0. Element
  118. ListElement<T> current = first;
  119. while (index > 0) {
  120. index--;
  121. current = current.next;
  122. }
  123. return current.value;
  124. }
  125. public int getSize(){
  126. return size;
  127. }
  128. }


So sieht meine Implementierung für eine Linked List aus. Leider kann ich sie nicht Testen, da ich z.B. LinkedList.addFirst(test) nicht aufrufen kann.

Lg Soja


Methoden Linked List Methoden können nicht aufgerufen werden

0 commentaires:

Enregistrer un commentaire