题目描述
给出n个学生的姓名和年级,请建立一个学生信息的链表。并将链表中各元素依次输出。
输入
第一行:一个整数n
接下来n行,每行一个学生的名字和年龄。
输出
输出:
n行,每行包括学生的姓名和年龄。
样例输入
3
wuzhenghao 18
liudeyu 20
liuying 19
样例输出
wuzhenghao 18
liudeyu 20
liuying 19
提示
要求建立学生链表。
这道题在考验我们的自觉。。。不过用链表试试也无妨,链表就是通过指针将许多的变量(也可以是结构体)连接起来,每一个指向下一个,可以完成排序!不过难度挺大,需要注意以下几点:
1.需要一个next指针链接下一个
2.需要head指针指向开始
3.需要now指针指向正在处理的结构体
4.需要t指针完成与now的交替
差不多就是这些了,代码实现也比较容易
#include<cstdio>
struct stu
{
char name[205];
int age;
stu *next;
};
int n;
int main()
{
//freopen("student.in","r",stdin);
//freopen("student.out","w",stdout);
scanf("%d",&n);
stu *head=new stu;
scanf("%s %d",head->name,&head->age);
head->next=NULL;
stu *now=head;
for(int i=2;i<=n;i++)
{
stu *t=new stu;
scanf("%s %d",t->name,&t->age);
t->next=NULL;
now->next=t;
now=t;
}
for(now=head;now!=NULL;now=now->next)
{
printf("%s %d\n",now->name,now->age);
}
}