顺序建立链表

数据结构实验之链表一:顺序建立链表

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<stdio.h>
#include<stdlib.h>
struct nobe
{
    int data;
    struct nobe *next;
};
int main()
{
   int i,j,n;
   struct nobe *head,*p,*tail,*q;
   head=(struct nobe *)malloc(sizeof(struct nobe));
   head->next=NULL;
   tail=head;
   scanf("%d",&n);
   while (n--)
   {
       p=(struct nobe *)malloc(sizeof(struct nobe ));
       scanf("%d",&p->data);
       p->next=NULL;
       tail->next=p;
       tail=p;
   }
q=(struct nobe*)malloc(sizeof(struct nobe ));
   q=head->next;
   int kk=1;
   while(q!=NULL)
   {
       if(kk==1)
       kk=0;
       else
       printf(" ");
       printf("%d",q->data);
       q=q->next;
   }
   printf("\n");

}

#include <stdio.h>
#include <malloc.h>
struct node
{
    int data;
    struct node *next;
}*p,*head,*tail,*q;
struct node *creat(int n)
{
    int i;
    head = (struct node *)malloc(sizeof(struct node));
    head->next = NULL;
    tail = head;
    for(i  = 1;i<=n;i++)
    {
        p = (struct node *)malloc(sizeof(struct node));
        scanf("%d",&p->data);
        p->next = NULL;
        tail->next = p;
        tail = p;
    }
    return (head);
};
int main()
{
    int n;
    scanf("%d",&n);
    head = creat(n);
    struct node *r;
    r = head;
    while(r->next!=NULL)
    {
        r->next->next==NULL?printf("%d",r->next->data):printf("%d ",r->next->data);
        r = r->next;
    }
    printf("\n");
    return 0;
}



你可能感兴趣的:(顺序建立链表)