学习C++和C语言心得 20
链表
1.含义
就如它的名字含义一样,它是一种将各种数据以物理的链状形式来连接起来,通过指针为纽带形成的一种链式表格型数据存储形式。换一种说法来讲,链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
2.例题
使用链表学生信息输入输出。
题目描述
输入若干个学生的信息(学号、姓名、成绩),当输入学号为0时结束,用单向链表组织这些学生信息后,再按顺序输出。
输入描述:
输入多行,直到一行开始输入0结束,每行包括,学号(长度小于等于9),姓名(长度小于等于100),成绩,空格分隔。
输出描述:
按照输入顺序输出每位学生信息,一行一个学生信息,学号,姓名,成绩,空格分隔。
#include<iostream>
#include<string.h>
#include<algorithm>
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->next=NULL;
p->data=number;
cin>>p->name>>p->score;
head=p;
q=p;
}
while(cin>>number&&number!=0)
{
s=new Node;
s->next=NULL;
s->data=number;
cin>>s->name>>s->score;
q->next=s;
q=s;
}
q->next=head;
p=head;
while(p!=NULL)
{
cout<<p->data<<" "<< p->name<<" "<< p->score<<endl;
p=p->next;
if(p->data==1) break;
}
return 0;
}
总结:对于刚接触链表的我来说非常的难,但我已艰难的只用指针传递了变量,并把它们构成了一个链表,较为清晰的了解了其原理与机制,但对这种题仍需要认真思考。链表对于我来说还是太难了。😭