PhoneBook mit verketteten listen

Diskutiere PhoneBook mit verketteten listen im Java Basics - Anfänger-Themen Bereich.
A

arhzz

Ich empfehle wirklich, das einmal durchzuspielen.

Wenn Du die Liste hast aus:
Anton
Berta
Zeppelin

Und du sollst Martha hinzu fügen:
Wie lange gehst du die Liste durch? Was prüft du beim durchgehen?
Ich gehe so lange durch bis ich zum List ende angekommen bin. Und beim durchgehen uberprüfe ich die Namen?
 
MoxxiManagarm

MoxxiManagarm

Nein, du musst so lange durchgehen bis du die Stelle gefunden hast, welche ein kleineres und ein größeres Element trennt. Dazwischen fügst du das neue Element ein.
 
A

arhzz

Nein, du musst so lange durchgehen bis du die Stelle gefunden hast, welche ein kleineres und ein größeres Element trennt. Dazwischen fügst du das neue Element ein.
Okay also muss ich meine while schleife anpassen? Meine schleife sagt gehe bis zum ende,und sie soll sagen gehe bis zum ende oder bis zu der Stelle welche ein kleiners und ein größeres element trennt?
 
MoxxiManagarm

MoxxiManagarm

Du kannst dir doch mein Beispiel nochmal vor Augen halten. Dort gehe ich so lange mit dem Bahnarbeiter vorwärts, bis die id von next größer ist als die id vom einzufügenden Waggon. Das resultiert darin, dass der Bahnmitarbeiter immer vor einem Waggon (current) steht mit einer kleineren id. D.h. current ist das kleinere Element und current.next das größere Element. Und genau dazwischen kommt der neue Waggon.
 
A

arhzz

Du kannst dir doch mein Beispiel nochmal vor Augen halten. Dort gehe ich so lange mit dem Bahnarbeiter vorwärts, bis die id von next größer ist als die id vom einzufügenden Waggon. Das resultiert darin, dass der Bahnmitarbeiter immer vor einem Waggon (current) steht mit einer kleineren id. D.h. current ist das kleinere Element und current.next das größere Element. Und genau dazwischen kommt der neue Waggon.
Ok ich werde versuchen zu anpassen. Danke dir!
 
A

arhzz

Soll die verkettete Liste eigentlich immer sortiert sein? Ich weiß nich was ihr so lange daran rumdoktort...
Ja sie soll immer sortiert sein.Ich denke ich habe es auch geshaft;

EDIT:

Java:
public boolean insert(Person person) {

        Node newNode = new Node(person);

        if (head == null) {
            head = newNode;
            size++;
            return true;
        }

        Node current = head;
        Node prev = null;
        int comparison;

        while (current != null) {
            comparison = person.name.compareTo(current.person.name);
            if (comparison == 0) {
                return false;
            } else if (comparison > 0) { /// greater than

                if (current.next == null) { // check if reach tail of the linked list add and break
                    current.next = newNode;
                    break;
                }
                current = current.next;
            } else { // less then
                if (prev == null) { // check if it should be first then put and break
                    Node oldHead = head;
                    head = newNode;
                    head.next = oldHead;
                    break;
                }
                prev.next = newNode;
                newNode.next = current;
                break;
            }
            prev = current;
            current = current.next;
        }
        size++;
        return true;
    }
Hab code vergessen lol
 
Zuletzt bearbeitet:
T

temi

Das sieht mir von irgendwoher zusammenkopiert aus und bei der Funktionalität wäre ich mir auch nicht so sicher...
 
J

JustNobody

Also ich würde den Algorithmus in Worten so aufbauen:
1. Liste leer? -> Leere Liste abhandeln
2. aktuelles Element ist erstes Element
3. So lange wie aktuelles Element ein Nachfolger hat und der Nachfolger vor dem einzufügenden Element kommen soll -> Ein Element weiter gehen.
3. Neues Element erstellen mit einzufügendem Wert und Nachfolger = Nachfoler vom aktuellem Element
4. Nachfolger vom aktuellen Element ist das neue Element.

Also relativ einfach und logisch aufgebaut. Relativ wenig Prüfungen. Die Schleife (3. bei mir) umfasst nur einen Befehl ...
 
Thema: 

PhoneBook mit verketteten listen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben