2013-11-13 2 views
1

Недавно я просмотрел связанный список для сохранения большого количества данных. Однако я застрял в том, чтобы придумать хороший способ сохранить данные для связанного списка связанного списка.Связанный список реализации объединенного списка

Ниже приведен псевдокод, что я пытался достичь

struct Student 
{ 
    string Name; 
} 

struct Classroom 
{ 
    string Teacher; 
    <list> Student *student; 
}; 


struct School 
{ 
    string School_Name; 
    <list> Classroom *room; 
}; 

struct State 
{ 
    string State_Name; 
    <list> School *school; 
}; 

Мне было интересно, если это, как вы реализуете связанный список внутри связанного списка. Итак, когда я читаю XML-файл. Я могу назначить несколько школ в одном государстве и несколько классных комнат в одну школу и так далее.

ответ

1

Реализация всегда зависит от проблема проблема, которую вы пытаетесь решить. Не зная больше о природе проблемы, трудно сказать, оптимальна ли ваша реализация. Это определенно законно (хотя, я бы использовал фактические списки в качестве членов вместо указателей на списки - кажется, нет никаких веских причин для последнего). Являются ли ваши данные когда-то прочитанными? Ожидаете ли вы читать всех учеников (например) по порядку? Вы планируете часто добавлять новых учеников? На основе этих ответов можно было выбрать оптимальное представление в рамках программы.

Тем не менее, псевдокод выше работал бы.

0

Просто небольшой пример:

list<list<int>> MainList; //you create a list that will contain lists 
list<int> SecondList; //Let's say that you have an ordinary list 
SecondList.push_back(1); 
SecondList.push_back(2); //And also let's say that you enter some values in it 
//Then you just add that list to the main list 
MainList.push_back(SecondList); //Because MainList should contain other lists. 

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

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