背包:Bag是一种无序的数据结构,不支持删除操作,就像是把带有数字的球收集到袋子中,取的时候遍历收集到的元素,是无序的。
栈:LIFO,是一种后进先出的数据结构,就像是我们往一个玻璃杯里面放小球,最后放的最先取出来。
队列:FIFO,先进先出的数据结构,如同一个管子,往一端放小球,另外一端取,先放入的先取出来。
用数组实现数据结构:顺序储存
一.实现栈的思路。
1.用a[]保存元素,N保存元素数量,当push就N++,当pull就N--。
2.动态调整数组大小,当N==a[].size就复制到新数组中,原来的数据置null。反之小于1/4就减半
3.加入迭代,内部类,implements Iterator<Item> ,i=N,hasNext return i>0,
next 就return a[--i]。
用链表实现:链式储存
链表结构简单实现:
对象有两个变量Item和Next,Item是泛型保存了变量的类型。
而next保存了下一个对象的引用。
如果要实现队列需要有两个节点对象的引用,first,last。