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

本文详细介绍如何通过输入的一系列整数,不使用数组而利用单链表进行数据存储及遍历输出的方法。核心在于理解链表的工作原理,以及如何在C语言中实现节点的动态创建与连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Description

输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据。


Input

第一行输入整数的个数N;
第二行依次输入每个整数。


Output

输出这组整数。


Sample
Input

8
12 56 4 6 55 15 33 62


Output

12 56 4 6 55 15 33 62


Hint

不得使用数组!


一定要知道链表是怎样连接的,并且在做提前先想好要怎样连接,本题是顺序链接只要开一个头结点,在在结尾一个一个连上就行了

#include <stdio.h>
#include <stdlib.h>
struct node
{
    int data;
    struct node *next;

};

int main()
{
    struct node *head,*p,*q;
    head = (struct node *)malloc(sizeof(struct node));
    head->next = NULL;
    /*开一个头节点,并在下面再让一个指针只想头结点并用它做游动指针,
    注意头指针很重要,不要轻易去动头指针*/
    q = head;
    int n;
    scanf("%d",&n);
    while(n--) //建立链表;
    {
        p = (struct node *)malloc(sizeof(struct node));
        scanf("%d",&p->data);
        p->next = NULL;  //开一个节点并放入数据,注意新开节点,指针定义为空;
        q->next = p;//“q”为游动指针,即为只向最后一个的指针,也可以在定义一个专门指向尾结点的指针;
        q = p; //每一次游动指针向后移动一位;
    }

    q = head->next; //输出链表;
    while (q!=NULL)
    {
        if(q->next!= NULL)
            printf("%d ",q->data);
        else printf("%d\n",q->data);
        q = q->next;
    }
    return 0;

}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

碧羽o(* ̄▽ ̄*)ブ回雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值