首页 > 代码库 > c++ 双向链表

c++ 双向链表

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

     }  ;
建立双向链表
头指针Head
尾部指针Tail
插入结点
 
 //建立头结点
    Head=tail=p= malloc(sizeof( struct stu_data)); //
     memset(stu,0,sizeof( struct stu_data)); //初始化内存区域

//尾部插入新结点 操作
       stu= malloc(sizeof( struct stu_data)); //分配结点内存空间
       memset(stu,0,sizeof( struct stu_data)); //初始化内存区域
   //结点数据填充。。。
         stu->front=p; //新结点指向前驱
         stu->back=NULL; //新结点尾指针置空
         p->back=stu; //前驱结点back指针指向新结点
         p=stu; //重要移动标志指针
         tail=stu;//可有可无的
A= Head      front                 back
0    0    0    D    B

  B
0    exit    e    A    C
  C
0    0    0    B    D
 D=stu=p=tail
0    exit    0    C    A

代码

 int main(int argn,char* argv[])// int a[1]//a[0]
 {       
    

     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;  //指向后一个结点

     }  ;
     struct mytime t2;
     struct stu_data *stu;
    // struct stu_data stu[50];
     time_t t;// long int
     struct tm * timfo;
     int i;
 
     stu=malloc(sizeof( struct stu_data)); //256+12=268
     printf("%d \n", sizeof( struct stu_data));
     getchar();
     
     //for (i=0;i<3;i++)
     //{
        // scanf("%s",&stu[i].name);
        // time(&t);
        // timfo= localtime(&t); //取当前系统时间 
  //       stu[i].stuTime.hour=timfo->tm_hour;//// stu[i].stuTime.min=timfo->tm_min;//// stu[i].stuTime.sec=timfo->tm_sec;////}
     ////显示学生 到校时间
     //for (i=0;i<3;i++)
     //{
        // 
        // time(&t);
        // timfo= localtime(&t); //取当前系统时间 
        // printf("%s,到校时间:%d时%d分%d秒\n",stu[i].name, stu[i].stuTime.hour, stu[i].stuTime.min, stu[i].stuTime.sec);



     //}
 

    getchar();
    getchar();
    
    return 0;
}

 

c++ 双向链表