typedef struct student{
int id;
char name[10];
struct student *next;
}stu,*ST;
typedef struct student stu相当于给struct student 起一个别名stu,可以用这个别名来声明变量
比如stu p ,stu *q, stu * q等价于 ST q;
1尾插法
#include <bits/stdc++.h>
using namespace std;
typedef struct student{
int id;
//string name;
char name[10];
struct student *next;
}stu,*ST;
int main(){ int m;
ST head, p, q;
p=(struct student *)malloc(sizeof(struct student));
head=p;
q=p;
head->next=NULL;
printf("请输入学生人数");
cin>>m;
while(m--)
{ p=(struct student *)malloc(sizeof(struct student));
cout<<"请输入学号";
scanf("%d",&p->id);
cout<<"请输入姓名";
cin>>p->name;
q->next=p;
q=p;
q->next=NULL;
}
p=head->next;
while(p)
{
cout<<"姓名是"<<p->name;
cout<<"id是"<<p->id<<endl;
p=p->next;
}
}
2头插法
#include <bits/stdc++.h>
using namespace std;
typedef struct student{
int id;
//string name;
char name[10];
struct student *next;
}stu,*ST;
int main(){ int m;
ST head, p, q;
p=(struct student *)malloc(sizeof(struct student));
head=p;
q=nullptr;
head->next=NULL;
printf("请输入学生人数");
cin>>m;
while(m--)
{ p=(struct student *)malloc(sizeof(struct student));
cout<<"请输入学号";
scanf("%d",&p->id);
cout<<"请输入姓名";
cin>>p->name;
head->next=p;
p->next=q;
q=p;
}
p=head->next;
while(p)
{
cout<<"姓名是"<<p->name;
cout<<"id是"<<p->id<<endl;
p=p->next;
}
}