链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。
只根据文字描述还是比较抽象的,直接上图来观察:
例题:
输入若干个学生的信息(学号、姓名、成绩),当输入学号为0时结束,用单向链表组织这些学生信息后,再按顺序输出。
运行实例:
#include<iostream>
using namespace std;
struct Node
{
int data;
string name;
int score;
Node *next;
};
int main()
{
int number;
Node *head,*p,*q,*s;
head=NULL;
cin>>number;
if(number!=0)
{
p=new Node;
p->data=number;
cin>>p->name>>p->score;
p->next=NULL;
head=p;
q=p;
}
cin>>number;
while(number!=0)
{
p=new Node;
p->data=number;
cin>>p->name>>p->score;
p->next=NULL;
q->next=p;
q=p;
cin>>number;
}
p=head;
while(p!=NULL)
{
cout<<p->data<<" "<<p->name<<" "<<p->score<<endl;
p=p->next;
}
}