Wie fügen Sie in eine sortierte verknüpfte Liste ein? [Duplikat]

Mögliche Duplikate:
LinkedList „Knotensprung“

Ich brauche nur eine verknüpfte Liste, um nach Namen zu sortieren. Ich kann es nur bis zum 1., 3., 5., .. Knoten bekommen. Ich kann einfach nicht so weit denken. Ich möchte C ++ - Programmierer werden, aber wenn ich das nicht verstehe, haben sie dann noch Hoffnung? STL-Behälterstd::lists sind für mich als Student derzeit keine Option. Was Sie in der Listenfunktion sehen, ist das, was ich zu verstehen versuche.

list::node::node(const winery &winery) : item( winery.getName(), winery.getLocation(),
    winery.getAcres(), winery.getRating() ), nextByName( NULL ), nextByRating( NULL )
{

}

void list::insert(const winery& winery)
{
    node *current_node  = new node( winery ); // but came here and did this so it has new info!
    node *next_node     = NULL;
    node *tail_node     = current_node;

    if ( headByName == NULL ) // then we are here for the first item
    {       
        headByName   = current_node; // the list ptrs will have the first node's address. 
        headByRating = current_node; 
    }
    while ( headByName->nextByName != NULL )
    {
        headByName->nextByName = tail_node;
        tail_node = next_node;
        //next_node = current_node;
    }
    tail_node = new node( winery ); 
    headByName->nextByName = tail_node;
}

Und die Hinweise, die mir zur Verfügung stehen:

struct node
{
    winery  item;
    node *  nextByName;
    node *  nextByRating;
};

class list
{
    ...
private:
    node * headByName;
    node * headByRating;
};

Antworten auf die Frage(4)

Ihre Antwort auf die Frage