在c ++中实现嵌套链表

时间:2015-03-28 13:12:02

标签: c++ linked-list nested-lists

这种嵌套链表的实现在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;
                };
             };

1 个答案:

答案 0 :(得分:0)

您可能希望为此使用类。类似的东西:

    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本身内部创建一个struct实例,比如:

struct all_deposited_books
   {
            int ISBN;
            //date given
            //bring back date
            all_deposited_books * next_dep_book; //<- this is probably gonna cause problems
   };

首先创建结构及其外观,然后您可以根据需要开始创建多少个实例:)