c++ 创建单项链表

时间:2023-03-09 01:32:35
c++ 创建单项链表
建立单向链表
头指针Head
插入结点 //建立头结点 Head
Head=p= malloc(sizeof( struct stu_data)); //
memset(stu,,sizeof( struct stu_data)); //初始化内存区域 //尾部插入新结点 操作
stu= malloc(sizeof( struct stu_data)); //
memset(stu,,sizeof( struct stu_data)); //初始化内存区域 stu->back=NULL; //新结点尾指针置空
p->back=stu; //前驱结点back指针指向新结点
p=stu; //重要移动标志指针
Head=p=;
back
.
p->back=stu; stu->back=NULL;p=stu;
name stuTime ... 其它数据 name stuTime ... 其它数据 NULL

代码

 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[];//学生名字
struct mytime stuTime;//签到时间
// struct stu_data* front; //指向前一个结点
struct stu_data* back; //指向后一个结点 } ;
struct mytime t2;
struct stu_data *stu,*p,*Head; time_t t;// long int
struct tm * timfo;
int i; //建立Head头结点
Head=p=malloc(sizeof( struct stu_data)); //256+12=268
memset(p,,sizeof( struct stu_data)); do
{//插入新的结点
stu= malloc(sizeof( struct stu_data)); //
memset(stu,,sizeof( struct stu_data)); //初始化内存区域 stu->back=NULL; //新结点尾指针置空
p->back=stu; //前驱结点back指针指向新结点
p=stu; //重要移动标志指针 scanf("%s",&stu->name);
time(&t);
timfo= localtime(&t); //取当前系统时间
stu->stuTime.hour=timfo->tm_hour;//时
stu->stuTime.min=timfo->tm_min;//分
stu->stuTime.sec=timfo->tm_sec;//秒 } while(strcmpi(stu->name,"exit")!=); //初始指针p 使他头结点Head
stu=Head->back;
do
{
printf("%s,到校时间:%d时%d分%d秒\n",stu->name, stu->stuTime.hour, stu->stuTime.min, stu->stuTime.sec); stu=stu->back;
} while (strcmpi(stu->name,"exit")); getchar();
getchar(); return ;
}