C语言初始化单链表,创建单链表(学生党一看必会)

#include <stdio.h>
#include <stdlib.h>

// 单链表的存储结构
typedef struct Node {
    int data;
    struct Node* next;
}Node,*LinkList;
/*
* Node,*LinkList 应用的时候的区别 
* Node: 使用的时候是 Node *
* *LinkList: 使用的时候是 LinkList
* 写的习惯:
*   LinkList: 用来定义函数,和函数参数,定义表或表的指针
*   Node*: 用来定义指针,和开辟空间
*/

// 初始化单链表
LinkList InitList () { // 要生成一个链表,注意写法
    LinkList L=(Node *) malloc (sizeof(Node));
    L->next = NULL;
    return L;
} 

// 头插法
void creatList(LinkList L) {
    Node * s;
    int data;
    printf("请输入数字,输入-1代表结束:");
    while(1) {
        scanf("%d",&data);
        if(data == -1) break;
        else {
            s = (Node *) malloc (sizeof(Node));
            s->data = data;
            s->next = L->next;
            L->next = s;
        }
    }
}
 
 // 打印链表
// void printList(Node * head) {
void printList(LinkList L) {
    Node * r;
    // r= head->next;
    r= L->next;
    while(r) {
        printf(" -> %d",r->data);
        r = r->next;
    }
    printf("\n");
}

int main() {
    LinkList LA;
    LA = InitList();    // 初始化单链表
    creatList(LA);      // 创建单链表
    printList(LA);      // 输出链表
    return 0;
}

 

  • 7
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值