tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
1703
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    moguai moguai ist offline Grünschnabel
    Registriert seit
    Dec 2009
    Beiträge
    3
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    
    public class ParcelList {
        
        private Parcel knoten;
        private ParcelList next;
        private ParcelList first = null;
        private ParcelList last = null;
        
        public ParcelList(){
            knoten = null;
            next = null;
        }
        
        public ParcelList(Parcel knoten){
            this.knoten = knoten;
            this.next = null;
        }
        
        public ParcelList(Parcel knoten, ParcelList next){
            this.knoten = knoten;
            this.next = next;
        }
        
        public void appendParcelList(Parcel knoten){
            if(this.knoten==null){
                this.knoten = knoten;
                next = null;
                first = this;
            }
            else if(next == null){
                next = new ParcelList(knoten, null);
            }
            else{
                next.appendParcelList(knoten);
            }
        }
        
        public void prependParcelList(Parcel knoten){
            first = new ParcelList(knoten, first);
        }
        
        public void removeParcelList(){
            //last.setParcel(null);
        }
        
        public void printParcelList(){
            for(ParcelList print = first; print != null; print = print.getNext()){
                print.knoten.printparcel();
            }
            last.getParcel().printparcel();
        }
        
        public ParcelList getThis(){
            return this;
        }
        
        public void setParcel(Parcel knoten){
            this.knoten = knoten;
        }
        
        public Parcel getParcel(){
            return knoten;
        }
        
        public void setNext(ParcelList next){
            this.next = next;
        }
        
        public ParcelList getNext(){
            return next;
        }
        
        public void setFirst(ParcelList first){
            this.first = first;
        }
        
        public ParcelList getFirst(){
            return first;
        }
        
        public void setLast(ParcelList last){
            this.last = last;
        }
        
        public ParcelList getLast(){
            return last;
        }
     
    }

    Ich komme da gerade einfach nicht weiter! Ich möchte in meiner einfachen Liste "last" immer als letztes Element spreichern, damit ich das letzte Element einfach wieder entfernen kann. Leider check ich einfach net, wie ich bei allen Objekten last korrekt festlege.
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.166
    Hi.

    Falls ich dich richtig verstanden habe, wird das was du möchtest mit einer einfach verketteten Liste nicht möglich sein.

    Um das letzte Element entfernen zu können müßtest du den Verweis des vorletzten Elementes auf dessen nächstes Element löschen. D.h. du müßtest immer Zugriff auf das vorletzte Element haben, was aber nach dem Löschen nicht mehr möglich ist.

    Entweder du verwendest eine doppelt verkettete Liste, die es ermöglicht an beiden Enden in konstanter Zeit O(1) Elemente zu entfernen, oder du mußt dich eben beim Löschen des letzten Elementes der Liste immer durch die komplette Liste durcharbeiten.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.335
    Hallo,

    du müsstest jedesmal, wenn du ein Object hinzufügst, über alle Object drüber laufen und das letzte Element setzen.
    Das ist meiner Meinung nach viel zu umständlich. Vor allem braucht es zu viel Rechenzeit. Es ist sinnvoller, wenn du das letzte Element löschen möchtest, an das Ende der Liste zu laufen und dann das letzte Element zu entfernen.

    BSP:
    Angenommen du setzt jedem Object das letzte Element. Wenn du eine Liste mit 100 Elementen hast und fügst 4 mal ein Object hinzu, musst du 4 mal das letzte Element in der Liste setzen. Also würdest du über 400 mal das Object setzen.
    Wenn du jetzt nur ein Object löschen würdest, müsstest du nur einmal durch die komplette Liste laufen, egal wieviele du hinzufügst.
    Da du nach deiner Variante auch immer, wenn du ein Object löschst, bei allem Elementen das Object neu setzen musst, läufst du wieder durch die komplette Liste.

    Wie gesagt, es ist unnötig, bei allen das letzte Object zu setzen.

    Gruß

    Sascha
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  4. #4
    moguai moguai ist offline Grünschnabel
    Registriert seit
    Dec 2009
    Beiträge
    3
    Klingt schlüssig! Danke, ich glaube dann weiß ich wie ichs mach!

    Gruß
     

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 07.02.10, 15:31
  2. Letztes Element aus Knotenliste mit XPath
    Von elkassi im Forum XML Technologien
    Antworten: 2
    Letzter Beitrag: 07.11.06, 13:07
  3. Letztes erstelltes Element fensterfüllend!
    Von Signum im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 21.07.04, 22:41
  4. Antworten: 10
    Letzter Beitrag: 16.01.04, 13:43
  5. letztes array element mit .pop() löschen
    Von deusfalsus im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 25.08.03, 15:29