Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据。
Input
第一行输入整数的个数N;
第二行依次输入每个整数。
Output
输出这组整数。
Sample Input
8
12 56 4 6 55 15 33 62
Sample Output
12 56 4 6 55 15 33 62
Hint
不得使用数组!
代码:
#include <stdio.h>
#include <stdlib.h>
typedef struct LNode *List;
struct LNode{
int data;
List next;
};
int main()
{
List head;
int n;
scanf("%d",&n);
int i;
List front;
for(i=0;i<n;i++)
{
List p;
p=(List)malloc(sizeof(struct LNode));
p->next=NULL;
scanf("%d",&p->data);
if(i!=0)
front->next=p;
else if(i==0)
head=p;
front=p;
}
List p=head;
while(p)
{
printf("%d",p->data);
if(p->next) printf(" ");
p=p->next;
}
printf("\n");
return 0;
}
分为几个函数:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct Lnode *List;
struct Lnode{
int n;
struct Lnode *next;
};
List CreatList(int);
void Print(List);
int main()
{
int n;
scanf("%d",&n);
List L=CreatList(n);
Print(L);
return 0;
}
List CreatList(int n)
{
List head;
int data;
int i;
List front;
for(i=0;i<n;i++)
{
List p=(List)malloc(sizeof(struct Lnode));
p->next=NULL;
scanf("%d",&p->n);
if(i!=0)
front->next=p;
else
head=p;
front=p;
}
return head;
}
void Print(List head)
{
List p=head;
while(p)
{
printf("%d",p->n);
if(p->next) printf(" ");
p=p->next;
}
printf("\n");
}
这个颜色不错诶
|—。—|~