数据结构实验之链表一:顺序建立链表
Time Limit: 1000MS
Memory Limit: 65536KB
Problem Description
输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据。
Input
第一行输入整数的个数N;
第二行依次输入每个整数。
第二行依次输入每个整数。
Output
输出这组整数。
Example Input
8 12 56 4 6 55 15 33 62
Example Output
12 56 4 6 55 15 33 62
Hint
不得使用数组!
解法01:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,tmp;
cin>>n;
list<int> lis; //使用STL中的list容器
for(int i=1;i<=n;i++)
{
cin>>tmp;
lis.push_back(tmp);
}
for(list<int>::iterator it=lis.begin();it!=lis.end();it++)
cout<<*it<<" ";
return 0;
}
解法02:
#include <bits/stdc++.h>
using namespace std;
//new运算符
struct node
{
int number;
node* next;
};
int n;
int main()
{
node* head=new node;
head->next=NULL;
node* p=head;
cin>>n;
for(int i=1;i<=n;i++)
{
node* q=new node;
cin>>q->number;
q->next=NULL;
p->next=q; //不是 p->next=&q; 因为q本身就是指针(代表地址)
p=q;
}
p=head;
while(p->next)
{
cout<<p->next->number<<" ";
p=p->next; //转移
}
return 0;
}