Является ли этот вид реализации вложенного связанного списка допустимым в C ++?
если да, то как объявить голову этим вложенным связанным спискам?
какой синтаксис для доступа к данным в этих списках внутри?
Вот часть моего общего кода.
Я пытаюсь выполнить систему управления библиотекой в C ++.
struct course
{
string course_name;
struct course_books
{
struct wait_list
{
long stu_num;
//date inserted
wait_list * next_wait_stu;
};
struct voters_list
{
long stu_num;
int vote;
voters_list * next_voter;
};
struct deposit_list
{
long stu_num;
//date given
//bring back date
deposit_list * next_depositor;
};
};
course * next_course;
};struct demand
{
int ISBN;
string book_name,
course,
author,
edition;
int demands_num;
struct demanding_students
{
string demander_name;
int demander_stu_number;
//demand date
demanding_students * next_demanding_stu;
};
demand * next_demand;
};
struct STUDENT_INFO
{
struct all_deposited_books
{
int ISBN;
//date given
//bring back date
all_deposited_books * next_dep_book;
};
struct today_deposited
{
int ISBN;
today_deposited * next_today_dep_book;
};
};
Вы, вероятно, захотите использовать классы для этого. Что-то вроде:
class STUDENT_INFO{
protected:
struct all_deposited_books
{
int ISBN;
//date given
//bring back date
};
struct today_deposited
{
int ISBN;
};
public:
all_deposited_books * next_dep_book;
today_deposited * next_today_dep_book;
};
Затем вы создаете экземпляр класса, например: STUDENT_INFO theBestStudentInfo;
и если вы хотите использовать переменную структуры внутри, вы просто вызываете: theBestStudentInfo.all_deposited_books[0].ISBN = 5;
или что-то типа того.
Также я не думаю, что вы можете создать экземпляр структуры внутри самой структуры, например:
struct all_deposited_books
{
int ISBN;
//date given
//bring back date
all_deposited_books * next_dep_book; //<- this is probably gonna cause problems
};
сначала создайте структуру и как она будет выглядеть, а затем вы можете начать создавать столько экземпляров, сколько захотите 🙂