[数据结构】【c语言】链表的创建和遍历

第一次写代码的博客,一个刚刚接触的新手,来这里主要是为了记录自己,方便自己以后浏览,也欢迎大家指正。先来个简单的,动态链表的创建和遍历。

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
//定义链表的节点
typedef struct LNode
{
    int data;
    struct LNode *next;
} *LinkList;
//创建链表函数
LinkList CreateList()
{
    LinkList LTail, LHead, p;                
    int i, length,input;
    LHead = (LinkList)malloc(sizeof(LNode));                //创建一个表头节点
    if (!LHead) exit(0);                                    //判断表头是否创建成功
    LTail = LHead;                                          //定义一个表尾
    LTail->next = NULL;                                     //表尾的指针赋予NULL
    printf("请输入你需要的节点数:\n");                             
    scanf_s("%d", &length);
    for (i = 0; i < length; i++)
    {
        printf("请输入第%d个节点的数据", i + 1);
        scanf_s("%d", &input);
        p = (LinkList)malloc(sizeof(LNode));                //创建一个新的节点
        if (!p) exit(0);                                             
        p->data = input;                                    //将输入的input的值赋给新的节点
        p->next = NULL;                                     //新的节点将要为链表的表尾将其指针赋NULL.
        LTail->next = p;                                    //将表尾与新的节点连接起来
        LTail = p;                                          //将新的节点赋给LTail,成为新的表尾
    }
    return LHead;                                           //返回表头
}
//遍历链表函数
void TravelList(LinkList Head)            
{
    LinkList p = Head->next;                                //从链表头节点的下一个节点开始遍历
    while (p != NULL)                                       //当链表为空时,停止遍历
    {
        printf("%d\t", p->data);
        p = p->next;                                        //向后移动一个节点
    }
}
int main()
{
    LinkList head;
    head = CreateList();
    TravelList(head);
    return 0;
}

 

转载于:https://www.cnblogs.com/code-wangjun/p/4349392.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值