数据结构实验之链表一:顺序建立链表
Time Limit: 1000MS Memory limit: 65536K
题目描述
输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据。
输入
第一行输入整数的个数N;
第二行依次输入每个整数。
第二行依次输入每个整数。
输出
输出这组整数。
示例输入
8 12 56 4 6 55 15 33 62
示例输出
12 56 4 6 55 15 33 62
写的时候,定义一个结构体变量就要为它申请空间,不然程序会运行时出问题 !
#include <iostream> #include <string> #include <string.h> #include <stdio.h> #include <algorithm> #include <algorithm> using namespace std; struct node { int data; struct node *next; }; int main() { int n; int i, j; struct node *head; head=(struct node*)malloc(sizeof(struct node)); // 重点 head->next=NULL; struct node *tail, *p; tail=head; cin>>n; for(i=0; i<n; i++) { p=(struct node *)malloc(sizeof(struct node)); // 重点 scanf("%d", &p->data ); p->next=NULL; tail->next=p; tail=p; } for(j=0; j<n; j++) { if(j==0) cout<<head->next->data; else cout<<" "<<head->next->data; head=head->next; } cout<<endl; return 0; }
#include <iostream> #include <string> #include <string.h> #include <stdio.h> #include <algorithm> #include <algorithm> using namespace std; struct node { int data; struct node *next; }; int main() { int n; int i, j; struct node *head; head= new struct node; // 用C++的new 申请空间也行! head->next=NULL; struct node *tail, *p; tail=head; cin>>n; for(i=0; i<n; i++) { p=new struct node; scanf("%d", &p->data ); p->next=NULL; tail->next=p; tail=p; } for(j=0; j<n; j++) { if(j==0) cout<<head->next->data; else cout<<" "<<head->next->data; head=head->next; } cout<<endl; return 0; }