2013-12-15 8 views
0

Я должен написать связанный список с заголовком. но я думаю, что не понял точного значения заголовка! Заголовка указывает на первый элемент списка или это первый элемент ?? Я прошу вас проверить, генерирует ли мой код связанный список с заголовком или нет? И если нет, то что мне делать, чтобы иметь связанный с заголовком список? вот код:связанный список с заголовком

#include<iostream> 
using namespace std; 

class node 
{ 
    int info; 
    node *next; 
    friend class H_list; 
}; 

class node; 
class H_list 
{ 
public: 
    H_list(); 
    int isempty(); 
    void insert(); 
    void del(); 
    void display(); 
private: 
    node *header; 
    node *L; 
}; 

//*****************************************************************// 

H_list::H_list() 
{ 
    header=new node; 
    header->next=NULL; 
    L=NULL; 
} 

//*****************************************************************// 
+3

Я рекомендую просить вашего профессора, что он имел в виду. – nhgrif

ответ

1

Заголовок (для однократно связанного списка) является фиктивной узел в начале, что упрощает вставку в самом начале.

Для циклически связанного списка термин «заголовок» иногда используется в отношении фиктивного узла, который соединяет конечный конец начала. Пустой такой список состоит только из узла заголовка, связывающего себя. Он устраняет некоторые особые случаи для вставки и удаления.

В любом случае узел заголовка не должен быть полным, полным узлом. Если ссылки находятся в начале каждого узла, тогда для заголовка должна быть только та часть. Кроме того, заголовок не обязательно должен быть динамически распределен.

+0

ok где я должен определить этот фиктивный узел? –

+0

Я бы предложил в конструкторе 'H_list'. Кстати, может быть хорошей идеей убедиться, что 'H_list' никогда не копируется, объявляя (но не реализуя) конструктор копии' private' и оператор присваивания копии ditto. Или наследовать от класса, например. называемый 'Non_copyable', который делает это (для того, чтобы быть полезным) для такого класса необходим конструктор по умолчанию. –

+0

Как определить его в H_list? node * header = новый узел; ? –

2

Роль заголовка - отслеживать список. Если вы ссылаетесь на один список, заголовок находится в начале отдельного списка и указывает на первый узел.

например

header->firstNode->secondNode->... 

Заголовок поможет найти первый узел в списке

Если список двойной связанный список, то вам нужен заголовок и обратно, чтобы иметь возможность доступа к списку с самого начала или конца легко.

+0

полезный, я думаю, я получил его tnx –

+0

это был мой первый ответ в этом весебайте;) удачи – KhaledMohamedP

Смежные вопросы