链表由结构体构成,结构体内部有个指针变量
指针变量可以用于指向下一个结构体,进而实现链表的链
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
//定义节点结构体
typedef struct student{
//数据域
char name[20];
int num;
int score;
//指针域
struct student *next;
}STU;
void link_creat_head(STU **p_head,STU *p_new){
STU*p_mov=*p_head;//移动指针
//如果头节点为空,创建头节点
if(*p_head==NULL) {
*p_head=p_new;
//开创新空间
p_new->next=NULL;
}
//继续填表
if(p_head!=NULL){
while(p_mov->next!=NULL){
//mov指针指向下一结构体
p_mov=p_mov->next;
}
p_mov->next=p_new;
p_new->next=NULL;
}
}
int main(){
STU *head=NULL,*p_new=NULL;
int num,i;
cin>>num;
for(i=0;i<num;i++) {
p_new=(STU*) malloc(sizeof(STU));
scanf("%d %d %s",&p_new->num,&p_new->score,p_new->name);
link_creat_head(&head,p_new);
}
return 0;
}