每日算法数据结构之-背包、栈、队列-day1

背包:Bag是一种无序的数据结构,不支持删除操作,就像是把带有数字的球收集到袋子中,取的时候遍历收集到的元素,是无序的。

栈:LIFO,是一种后进先出的数据结构,就像是我们往一个玻璃杯里面放小球,最后放的最先取出来。

队列:FIFO,先进先出的数据结构,如同一个管子,往一端放小球,另外一端取,先放入的先取出来。


用数组实现数据结构:顺序储存

一.实现栈的思路。

1.用a[]保存元素,N保存元素数量,当push就N++,当pull就N--。

2.动态调整数组大小,当N==a[].size就复制到新数组中,原来的数据置null。反之小于1/4就减半

3.加入迭代,内部类,implements Iterator ,i=N,hasNext return i>0,

next 就return a[--i]。

用链表实现:链式储存

链表结构简单实现:

对象有两个变量Item和Next,Item是泛型保存了变量的类型。

而next保存了下一个对象的引用。


如果要实现队列需要有两个节点对象的引用,first,last。

你可能感兴趣的:(每日算法数据结构之-背包、栈、队列-day1)