数据:基于数组实现数据结构

本文介绍了如何利用数组高效地实现数据结构,包括栈、队列、缓冲区和链表。栈是先进后出(FILO)结构,可以用数组配合指针轻松模拟。队列是先进先出(FIFO)结构,通过数组的索引管理和模运算实现。缓冲区着重对象复用,数组头作为指向可用元素的指针。链表虽便于插入删除,但内存零散,性能不佳,可以使用数组模拟链表结构以提高效率。
摘要由CSDN通过智能技术生成

10 基于数组实现数据结构

很显然数组带来很大的好处,直接的好处有几点,第一它是一块完整的连续的内存而且只需要一次性分配,第二数组本身访问效率很高,第三我们可以对数组进行复制,因为数组只有一块内存,我只要把这一块的内存完整复制就可以了,而其他的很多复合结构可能有多块内存组成的,我们想复制的时候并不容易。比如切片还好点只有两块内存,比如像链表可能有很多块内存,我们想复制一个链表的时候我们得遍历一块一块的复制,所以数组先天性的具备了性能上的优势,我们承认数组在操作上的确有很多麻烦,但数组的性能不能忽略。接下来我们做的是能不能用数组实现常用的数据结构。第一我们使用数组带来的性能优势,第二把数组转换为另外的访问方式带来操作上的便利性。把这两者结合起来,因为直接操作数组的很多时候比较麻烦,比如我们插入、删除这些操作不特别方便。所以我们接下来把数组和其他数组结构访问上的便利性结合起来。

10 栈(Stack)

栈是很典型的先进后出(FILO)数据结构。其实我们在前面接触很多的栈,调用堆栈本身就是一个栈结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值