链表是线性表的链式存储结构,有单链表、循环单链表、双链表、循环双链表、顺序链表。
链表不能够进行随机访问,但在插入和删除数据时不需要移动元素,比顺序结构操作简单。
简单程序实现:
#include<iostream>
#include<stdlib.h>
using namespace std;
struct student//建立学生信息链表结构体
{
int num;
float score;
struct student *next;
};
void ScIn(student *s1)//输入学生数据信息
{
cout<<"please input the student information: "<<endl;
cout<<"the number is: "<<endl;
cin>>s1->num;
cout<<"the score is: "<<endl;
cin>>s1->score;
}
//使用头插法来创建带有头结点的链表,并需要返回头节点的指针
struct student * Creat(student *L,int n)
{
L=(student*)malloc(sizeof(student));
if(!L)cout<<"error!"<<endl;
else L->next=NULL;
for(int i=1;i<=n;i++)
{