链表和二叉树的概述

链表

链表二叉树,他们都是可以不用考虑索引的顺序就可以对元素进行读写的方式。通过使用链表,可以高效的对数据元素进行添加和删除操作。而通过使用二叉树,则可以更高效的对数据进行检索

在实现数组的基础上,处理数据的值以外,通过为其附带上一个元素的索引,即可实现链表。数据的值和一个元素的地址(索引)就构成了一个链表元素,下图所示:

在这里插入图片描述

链表的数据结构

对链表的添加和删除都是非常高效的,叙述一下这个添加和删除的过程,加入我们要删除地址为**p[2]**的元素,链表该如何变化呢?

在这里插入图片描述

链表的删除

删除地址为**[P2]**的元素后,直接将联保剔除,并把平[2]前一个位置的元素p[1]的指针域执行p[2]下一个链表元素的数据区即可。

在这里插入图片描述

链表的添加

那么对于新添加进来的链表,需要确定插入位置,比如要在p[2]和p[3]之间插入地址为p[6]的元素,需要将p[6]的前一个位置p[2]的指针域改为平p[6]的地址,然后将p[6]的指针域改为p[3]的地址即可。

链表的添加不涉及到数据的移动,所以链表的添加和删除很快,而数组的添加设计到数据的移动,所
以比较慢,通常情况下,使用数组来检索数据,使用链表来进行添加和删除操作。

二叉树

二叉树 也是一种检索效率非常高的数据结构,二叉树是指在链表的基础上往数组追加元素时,考虑到数组的大小关系,将其分成左右两个方向的表现形式。假如我们把50这个值保存到了数组中,那么,如果接下来要进行值写入的话,就需要和50比较,确定谁大谁小,50数值大的放右边,小的放左边,
下图是二叉树的比较示例

在这里插入图片描述

二叉树比较示意图
二叉树是由链表发展而来,因此二又树在追加和删除元素方面也是同样有效的。
这一切的演变都是以内存为基础的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ming tian

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

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

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

打赏作者

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

抵扣说明:

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

余额充值