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

#include 
#include 

// 单链表的存储结构
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;
}

C语言初始化单链表,创建单链表(学生党一看必会)_第1张图片

 

你可能感兴趣的:(数据结构,c语言,链表,数据结构)