数据结构
数据结构分为:存储结构、逻辑结构、数据运算
逻辑结构与数据的存储没有关系,是独立于计算机的,是从具体问题抽象出来的数学模型。
存储结构只有顺序存储结构和链式存储结构。
一、线性表:
线性表是为了解决单线存储而出现的。
数组:就是最简单粗暴的存储方法。就是直接拉出一大块数据存在那里。数组的快速存取其实只是一个副作用,因为所有的数据都在一起,可以直接算出来数据的地址。
链表:则是为了解决可以无线增长的需求的。因为找不到一大块可以连续的存入数据,甚至也不知道程序可能使用的数据总量,所以就没办法划分一块数据来使用,划小了不够用,划大了浪费(这在早年是非常大的事情)。所以必须想办法解决问题。最后采用的方法就是从入口开始,每一个数据块不仅仅有数据,还会有指向下一个数据块的线索,用来寻找下一个数据。这就是链表。
所谓的双向链表,只是加了一个向前的线索的链表而已。不仅如此,队列,栈,都是线性表的特殊形态。进行了操作上的限制罢了。既可以是数组,也可以是链表。
二、栈
顺序栈 (top用来存放栈顶元素的下标)
判断栈S空:如