8.3 数据结构总结

数据结构总结

数据结构:数据结构是计算机存储、组织数据的方式,它描述了数据元素之间的关系,包括数据的逻辑结构、数据的存储结构和数据的操作

逻辑结构:集合结构、线性结构、树形结构、图型结构

存储结构:线性存储、链式存储、索引存储、散列存储

数据根据元素之间的关系不同,可以分为线性结构和非线性结构

常见数据结构以及其优缺点

数组(顺序表):数组是一种线性数据结构,它包含了一组具有相同数据类型的元素,这些元素在内存中连续存储,并且每个元素都有一个唯一的索引,用于访问和修改该元素。
优点:
1.内存中连续存储,访问速度快
2.每个元素都有唯一索引,便于访问以及修改
缺点:
1.固定大小,一经申请,大小就固定了,不定动态改变
2.插入和删除效率低,因为插入和删除都需要移动大量元素,操作复杂度高,可能导致性能下降

链表:链表是一种动态数据结构,由一系列节点组成,每个节点包括数据以及指向下一个节点的指针,节点之间存储地址不连续(这里以单向链表释义作代表)
优点:
1.插入和删除效率高,因为不需要移动大量元素,只需要改动节点指针指向即可
2.提高内存利用率,申请节点时不需要申请连续的内存空间,可以充分利用起零散的小块内存,提高内存利用率
3.动态大小,链表大小可以根据需要动态申请,节省空间
缺点:
1.额外内存开销,因为要额外存储指向下一个节点的指针(双向链表中还要存储指向前一个节点的指针)
2.随机访问效率低,一位必须要从头节点进行遍历,直到找到目标元素,时间复杂度为O(n)
3.内存不连续,可能导致读取效率差

栈:栈是一种操作受限的线性表,只能在栈顶进行插入和删除操作,满足先进后出(FILO)和后进先出(LIFO)原则
优点
1.栈严格遵守后进先出原则,在需要撤销、回退等场景下很有用
2.易于实现
缺点:
1.访问效率低,因为只能通过栈顶进行访问
2.大小固定,可能栈满

队列:只允许在一端进行插入另一端进行删除操作的表,实现方式有循环队列以及链式队列,先进先出(FIFO)
优点:
1.先进先出原则:队列严格遵守先进先出的原则,适用于需要按顺序处理的场景
2.并发性能好:队列支持多线程并发访问,可以实现生产者-消费者模型等并发编程模式
缺点:
1.访问效率低:与数组和链表相比,队列的访问效率较低,因为需要从头节点开始逐个遍历
2.容量限制:队列的大小可能受到内存限制,当队列满时无法再入队新元素

哈希表:哈希表是一种基于哈希函数实现的关联数组,哈希表找中的元素由键值对组成,每个键都通过哈希函数映射到一个唯一的地址上,从而实现快速访问。
优点:
1.快速访问:可以通过键快速访问到值,时间复杂度接近O(1)
2.灵活性强:哈希表可以存储任意数据类型,并且支持动态扩展或缩小
缺点:
1.哈希冲突:当不同的键映射到相同的地址时,会发生哈希冲突。解决哈希冲突的方法有多种,但都会增加额外的空间或时间开销。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值