C++编程入门(二) 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

链表访问

输出每个学生的信息,抽象为函数printList

void printList(student \*head)
{
    student \*p=head;
    while(p!=NULL)
    {
        cout<<"学号: "<<p->id<<" 姓名: "<<p->name<<" 成绩: "<<p->score<<endl;
        p=p->next;
    }
}

代码很简洁,参数是链表的头指针head,它指向一个链表的首节点。第3行新建一个student类型的指针,并初始化为指向首节点。

while循环的条件是p!=NULL,也就是当前指针不是指向NULL时才能进入循环体。还记得链表最后一个节点的指针是NULL吗?循环到最后一个节点后,p=p->next,之后p就是NULL,再次判断时,跳出循环。循环条件p!=NULL是很常用的。

再看循环体,首先输出,然后取得将指针p指向下一个节点。

在右侧代码框中编写程序:调用函数createList和printList,先让用户输入链表,再将链表输出。