首页 > 代码库 > c++ 结构指针和双向链表

c++ 结构指针和双向链表

?结构指针
?为结构指针动态分配内存
?结构中的结构
?双向链表



?结构指针
        struct mytime
     {   
         //char name[256];
         int hour;//
         int min; //
         int sec; //
     };

     struct stu_data
     {
         char name[256];//学生名字
         struct mytime stuTime;//签到时间

     }  ;
     struct stu_data *stu; // int *pi;
?为结构动态分配内存
     stu=malloc(sizeof(struct stu_data)); //256+12=268

?结构中的结构
      struct stu_data
     {
         char name[256];//学生名字
         struct mytime
         {   
             //char name[256];
             int hour;//
             int min; //
             int sec; //
         } stuTime;//签到时间

     }  ;
     struct mytime t2;
     struct stu_data *stu;

?双向链表结构
     链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,链表比较方便插入和删除操作。

 
     struct mytime
     {   
         //char name[256];
         int hour;//
         int min; //
         int sec; //
     };

     struct  stu_data
     {
         char name[256];//学生名字
         struct mytime stuTime;//签到时间
         struct  stu_data* front; //指向前一个结点
         struct  stu_data* back;  //指向后一个结点

     }  ;
 
   stu=malloc(sizeof(struct stu_data)); //256+12=268

 1    front    back
name    stuTime    ...    其它数据    NULL    2
2 
name    stuTime    ...    其它数据    1    3
3
name    stuTime    ...    其它数据    2    4
4
name    stuTime    ...    其它数据    3    xx
XX
name    stuTime    ...    其它数据    4    0x0041118
0x0041118
name    stuTime    ...    其它数据    xx    NULL

 

c++ 结构指针和双向链表