天天看点

数据类型(算法第4版)1

       数据类型的值就是一组对象的集合,所有操作都是关于添加、删除或者访问集合中的对象。        基础的数据类型:背包(Bag)、队列(Queue)、栈(Stack)。 他们的不同在于删除和访问对象的顺序内不同        Java的每份API中都含有一个无参的构造方法、一个向集合中添加单个元素是方法、一个测试集合是否为空的方法和一个返回集合大小的方法。Stack和queue都含有一个能够删除和添加集合中的特定元素的方法       泛型/参数化类型 集合类的抽象数据类型的一个关键特性是我们应该可以用他们存储任意类型的数据

背包:          一种不支持从中删除元素的集合的数据类型------目的是帮助用户收集元素并迭代遍历所收集到的数据(也可以检查背包是口为空或者元素的数量),使用背包可以说明元素的处理顺序不重要。例如简单的计算标准输入中的所有double型值的平均值和样本标准差,在这些计算中,数的计算顺序与结果无关,因此可以将他们保存在背包对象里并使用foreach语法计算。

先进先出(FIFO)---队列 按照任务产生的顺序完成完成他们的策略:在剧院门前排队的人、在收费站前排队的汽车等等。 在应用程序中使用队列的主要原因是在用集合保存元素的同时保存他们的相对顺序:入列和出列顺序一致

后进先出(LIFO)--下压栈 你的邮件放在桌子上时使用的就是栈/上网时点击一个超链接,浏览器会显示一个新网页(并将他压入一个栈),总可以通过回退重新访问以前的网页(从栈中弹出)。在应用成语中使用栈迭代器的一个典型原因时在用集合保存元素的同时颠覆他们的相对顺序。 如何才能得到一个(有字符串表示的)算数表达式的值呢? 用两个栈(一个保存运算符、一个保存操作数)即可。

继续阅读