[数据结构】【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("请输入你需要的节点数:
");                             
    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	", p->data);
        p = p->next;                                        //向后移动一个节点
    }
}
int main()
{
    LinkList head;
    head = CreateList();
    TravelList(head);
    return 0;
}
原文地址:https://www.cnblogs.com/code-wangjun/p/4349392.html