题目:创建一个链表。

程序分析:通过定义一个结构体 LNode 来表示链表的节点,包括一个整型数据和一个指向下一个节点的指针。然后,定义 CreateList() 函数用于创建链表,并通过用户输入节点的数据来初始化链表。最后,定义 print() 函数用于遍历链表并输出节点的数据。

实例

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

typedef struct LNode{
    int data;
    struct LNode *next;
} LNode, *LinkList;

LinkList CreateList(int n);
void print(LinkList h);

int main() {
    LinkList Head = NULL;
    int n;
    
    printf("请输入链表的节点个数:");
    scanf("%d", &n);
    
    Head = CreateList(n);
    
    printf("刚刚建立的链表元素的值为:\n");
    print(Head);
    
    printf("\n\n");
    system("pause");
    return 0;
}

LinkList CreateList(int n) {
    LinkList L, p, q;
    int i;
    
    L = (LNode*)malloc(sizeof(LNode));
    if (!L)
        return NULL;
    
    L->next = NULL;
    q = L;
    
    for (i = 1; i <= n; i++) {
        p = (LinkList)malloc(sizeof(LNode));
        printf("请输入第%d个元素的值:", i);
        scanf("%d", &(p->data));
        
        p->next = NULL;
        q->next = p;
        q = p;
    }
    
    return L;
}

void print(LinkList h) {
    LinkList p = h->next;
    while (p != NULL) {
        printf("%d ", p->data);
        p = p->next;
    }
}

在上述代码中,我们定义了一个结构体 LNode,用于表示链表的节点,包括一个整型数据 data 和一个指向下一个节点的指针 next

然后,我们定义了 CreateList() 函数,用于创建链表。通过循环获取用户输入的节点数据,并将其保存到新建节点中,然后按照链表的顺序连接这些节点,最终返回链表的头节点。

main() 函数中,我们首先获取用户输入的链表节点个数 n,然后调用 CreateList() 函数创建链表,并将返回的链表头节点保存在 Head 变量中。

接下来,我们调用 print() 函数,遍历链表并输出节点的数据。

最后,程序通过返回 0 来结束程序的执行。

标签: c语言, c语言教程, c语言技术, c语言学习, c语言学习教程, c语言下载, c语言开发, c语言入门教程, c语言进阶教程, c语言高级教程, c语言面试题, c语言笔试题, c语言编程思想, c语言练习, c语言练习题