**
队列
** 对于字符串是否等于某一字符,使用方法:contains,equals
循环队列: 1、如何判断循环队列队为空? 队空:head == tail 跟之前一样。 2、如何判断循环队列队为满 队满:(tail+1) mod QueueSize==head 3、如何获得队列中的元素数量 length=(tail-head+QueueSize)%Queuesize(其中QueueSize表示的是队列的长度,tail表示的队列的尾部,出队时tail所在位置没有元素,head表示的队列的头部) 输入类型的方法: Scanner scan = new Scanner(System.in); int m = scan.nextInt(); //整型 String type = scan.next();//字符串型
栈
当栈中有元素时,栈顶元素为1,所以进栈是栈顶元素应为1,而不能是0。在判断是否为空栈的时候,判断条件出错,将判断条件(top!=0)写成(top==0),造成了逻辑条件的错误,导致在main函数中的判断出现错误,从而使得程序运行代码出现问题。
Java中内置栈类:
栈是 Vector 的一个子类,它实现了一个标准的后进先出的栈,至于什么是 Vector,大家可以理解为能力超强的数组,堆栈定义了默认构造函数,用来创建一个空栈。 在 Java 的 stack 模板定义了如下操作流程: push():执行 push 时(即,将元素推入栈中),是通过将元素追加的数组的末尾中。 //peek()是将其当成栈顶top来使用,取出元素不删除 peek():执行 peek 时(即,取出栈顶元素,不执行删除),是返回数组末尾的元素。 //pop()表示的是取出元素,即执行出栈操作,执行出栈操作时需要将栈中的元素删除 pop():执行 pop 时(即,取出栈顶元素,并将该元素从栈中删除),是取出数组末尾的元素,然后将该元素从数组中删除。 empty():继承于 Vector,返回是否为空 size():继承 Vector,返回元素的个数。
**
Vector
** Vector在做题的过程中,由于Vector是一个空间动态变化的数组,所以取出数据的时候要通过get来就行取出,因为Vector被封装了。 定义:Vector vector = new Vector<string>(); 对于将Vector用作二维数组来说,那么创建对象和存放数据的时候要格外注意。如:
static Vector<Vector<String>> pakage = new Vector<Vector<String>>();`
city.addElement(k);
pakage.addElement(new Vector<String>());
pakage.get(city.size()-1).addElement(m);
**
Queue
** 使用queue进行运算,其中offer是输入,pull为输出。
s定义:Queue<String> queue = new LinkedList<String>();
教训:将输入和输出分开进行处理。
Map
Map是一种映射,其中存在key和value,他们一一对应,通过key确定value
map 是一个关联容器,它提供一对一的 hash。 定义:Map map= new TreeMap(); 第一个可以称为关键字(key),每个关键字只能在 map 中出现一次 第二个可能称为该关键字的值(value) map 以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。Map 主要用于资料一对一映射(one-to-one)的情況
小贴士: 在java运算过程中,一般最小值为-0x3f3f3f3f,而不是-0x7f7f7f7f,防爆,内存不足
|