链表指向前一个数据
#include<iostream>
using namespace std;
struct student
{
string id;
string name;
char sex;
int age;
double score;
string address;//地址
};
struct node
{
student date;
node *befor;
};
node * create()//返回node指针类型
{
string End="end";
node *p,*l;
l=NULL;//首地址为空,停止
p=new node;
while(cin>>p->date.id&&p->date.id!=End)
{
cin>>p->date.name;
cin>>p->date.sex;
cin>>p->date.age;
cin>>p->date.score;
cin>>p->date.address;
if(l==NULL)
{
p->befor=l;
}
else
p->befor=l;//将前一个地址给当前的befor
l=p;//记录位置
p=new node;
}
delete p;
return l;
}
void show(node *head)
{
while(head)
{
cout<<head->date.id<<" ";
cout<<head->date.name<<" ";
cout<<head->date.sex<<" ";
cout<<head->date.age<<" ";
cout<<head->date.score<<" ";
cout<<head->date.address<<endl;
head=head->befor;
}
}
int main()
{
node *head;
head=NULL;
head=create();
show(head);
delete head;
return 0;
}