使用链表学生信息输入输出

#include <iostream>

#include <cstring>

using namespace std;

struct Student {

char id[10];

char name[101];

int score;

Student* next;

};

int main() {

Student* head = nullptr;

Student* tail = nullptr;

while (true) {

Student* s = new Student;

cin >> s->id;

if (strcmp(s->id, "0") == 0) {

delete s;

break;

}

cin >> s->name >> s->score;

s->next = nullptr;

if (head == nullptr) {

head = s;

tail = s;

} else {

tail->next = s;

tail = s;

}

}

Student* current = head;

while (current!= nullptr) {

cout << current->id << " " << current->name << " " << current->score << endl;

Student* nextNode = current->next;

delete current;

current = nextNode;

}

return 0;

}

在 main 函数开始处,定义了两个指针 head 和 tail,它们都初始化为 nullptr,分别用于指向链表的头节点和尾节点。初始时链表为空,所以都指向空地址。

  • 首先,让指针 current 指向链表的头节点(current = head;),然后进入循环,只要 current 不为空指针,就执行循环体内容。
  • 在循环体中,先通过 cout << current->id << " " << current->name << " " << current->score << endl; 输出当前节点所存储的学生学号、姓名和成绩信息。
  • 接着,保存当前节点的下一个节点指针到 nextNode 变量(Student* nextNode = current->next;),这是为了在释放当前节点内存后还能找到后续节点。
  • 然后,使用 delete current; 释放当前节点所占用的内存空间,最后将 current 指针更新为下一个节点(current = nextNode;),继续下一轮循环,直到遍历完整个链表,所有节点内存都被释放,current 变为 nullptr 时循环结束。
全部评论

相关推荐

2024-12-19 15:10
已编辑
腾讯_IEG_后台开发(实习员工)
马上进入到找暑期实习的时候,大家要开始进行准备,从一场面试的经典流程来给大家分析需要在哪些方面做足准备。回答问题的关键:总分结构。先对问题做总结性回答,再逐条回答细节。1、自我介绍自我介绍是面试的开场白,目的是让面试官快速了解你的基本信息、学历背景以及与你申请岗位相关的实习和项目经历。要做到简洁明了,突出重点。面试官您好,我叫xxx,现就读于xx学校,(研究生)x年级,本科来自于xxx。在在xx公司从事过后端开发的,主要负责了xxx的开发。此外,自己还独立完成了一个xx项目,使用xx技术实现了一个xx系统。这就是我的一些基本情况。2、实习经历和项目经历(各类场景问题处理)2.1&nbsp;实习和项目经历让你自己介绍:先介绍整体系统的功能,提供了一个什么样的平台/用来做什么,再介绍自己的工作部分。主要考验你做了什么(工作量),掌握了哪些技术,解决了什么难点,为什么要这样设计,为什么要使用这个中间件而不是另一个,想好自己的架构设计。在面试前提前准备好可能会被问到问题,准备的时候一定要思考简历上每一句话,大部分时候面试官都是对着你的简历临时提问的。当然这部分也会根据你简历的写法引申出八股的提问。2.2场景问题(软实力)这一部分和八股有些重合,但是个人觉得是面试官考验你综合能力的问题,在这一部分中,面试官的提问一般是自己开发中遇到的或者根据你简历上某个点临时想到的。这里真的很考验软实力,对架构设计以及遇到问题的解决方案设计,平时自己写项目的时候做好沉淀,多看看技术博客之类的。在回答的时候一定要总分式。3、八股文这一部分我就简单罗列一下在哪几个方面作出准备,具体内容网上资料很多了。3.1&nbsp;语言八股3.2&nbsp;存储中间件八股3.3&nbsp;消息队列八股3.4&nbsp;计算机网络/系统八股3.5&nbsp;开发工具类:Docker、k8s等4、算法题这一部分没得说,考验你的coding能力,talk&nbsp;is&nbsp;cheap,show&nbsp;me&nbsp;your&nbsp;code.&nbsp;硬刷和总结,当然也很看运气。在这一部分除了力扣上的算法题还有一些其他类型手撕:令牌桶、位运算实现两数加法、单例模式等,这部分我看到了也会进行补充。做不出来的时候有可以小小补救的技巧,可以尝试跟面试官讲解思路和请求换题之类的。5、智力题这个就看自己遇没遇到过和临场发挥了,平时多进行一些总结祝大家都能顺利通过面试拿到一个满意的offer。如果感觉本文有所帮助可以点赞和一个小花花,也欢迎在评论区讨论一些面试小技巧。#牛客激励计划##ai智能作图#
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务