欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C语言版单向链表的简单实现教程

程序员文章站 2024-01-18 22:36:40
C语言版单向链表的简单实现教程 #include #include //定义一个结构体代表链表结点 struct node{...

C语言版单向链表的简单实现教程

    #include 
    #include 

    //定义一个结构体代表链表结点 
    struct node{ 
        int data; //结点中存放数据 
        struct node *next; //指向下一个结点的指针 
    };

    //为求方便给结点类型一个新的类型名Lnode 
    typedef struct node Lnode;

    int main(){
        //定义三个指针 1.head:头指针;2.P:每次通过该指针获取新的内存空间;
        //3.P1:作为记忆连接结点使用; 
        Lnode *head, *p1, *p;
        //获取头结点,此时三个指针指向同一片内存空间 
        head = (Lnode*)malloc(sizeof(Lnode));
        p = head;
        p1 = head;
        //输入整数,存到头结点data中 
        scanf("%d", &p->data);
        //设定当数据域data=0即用户输入0时退出循环,链表建立结束
        while(p->data != 0){    
            //获取新的内存空间 
            p = (Lnode*)malloc(sizeof(Lnode));
            //连接结点 
            p1->next = p;
            //用p1跟踪当前最后一个结点 
            p1 = p;
            //存放结点数据 
            scanf("%d", &p->data);
        }; 
        //让尾结点指针变量指向NULL 
        p->next = NULL;
        //让p1指向头结点,用于遍历链表
        p1 = head; 
        //遍历链表
        while(p1->next != NULL){
            printf("%d\n", p1->data);
            p1 = p1->next;
        };
        return 0;
    } 

编译运行代码,输入1,2,3,4,5,0; 运行结果如下:

C语言版单向链表的简单实现教程