白骑士的C语言教学高级篇 3.2 高级数据结构

系列目录

上一篇:白骑士的C语言教学高级篇 3.1 高级指针技术

        在计算机科学中,数据结构是组织和存储数据的方式,不同的数据结构适用于不同的问题和算法。本节将介绍链表、栈与队列以及树与图,这些高级数据结构在实际编程中非常常用,并且是许多复杂算法的基础。

链表

        链表是一种线性数据结构,其中的元素存储在节点中,每个节点包含数据和一个指向下一个节点的指针。链表的优点是插入和删除操作非常高效,但缺点是访问元素的时间复杂度较高,因为需要从头节点开始逐个遍历。

单向链表

        只有一个方向的指针,指向下一个节点,例如:

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


typedef struct Node {
    int data;

    struct Node *next;
} Node;


void append(Node **head, int data) {
    Node *new_node = (Node *)malloc(sizeof(Node));

    new_node->data = data;
    new_node->next = NULL;

    if (*head == NULL) {
        *head = new_node;
    } 

    else {
        Node *temp = *head;

        while (temp->next != NULL) {
            temp = temp->next;
        }

        temp->next = new_node;
    }
}


void printList(Node *head) {
    while (head != NULL) {
        printf("%d -> ", head->data);

        head = head->next;
    }

    printf("NULL\n");
}


int main() {
    Node *head = NULL;

    append(&head, 1);
    append(&head, 2);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白骑士所长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值