20、数据结构:链表、树及其应用

数据结构:链表、树及其应用

1. 链表的引入与基本概念

在编写程序时,有时我们会遇到一个问题,比如编写一个显示一系列抽认卡的教学练习程序,我们事先并不知道用户会提供多少张卡片。这时,链表(Linked List)这种数据结构就能派上用场。链表可以随着新卡片的添加而动态增长,而且它还能与其他数据结构结合,处理极其复杂的数据。

链表是一种由一系列节点组成的链式结构,每个节点都指向下一个节点。这就像我们小时候玩的寻宝游戏,每一个线索都指向了下一个线索,直到我们找到宝藏或者迷失方向。

链表的结构声明如下:

struct linked_list {  
    char    data[30];             /* data in this element */  
    struct linked_list *next_ptr; /* pointer to next element */  
};  
struct linked_list *first_ptr = NULL;

变量 first_ptr 指向链表的第一个元素。在开始时,当链表为空,这个变量被初始化为 NULL

2. 向链表头部插入元素

要在链表的头部插入一个新元素,我们可以按照以下步骤进行:
1. 为新元素创建一个结构体。

new_item_ptr = malloc(sizeof(struct linked_list
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值