java中数据结构——栈,队列,链表

**

队列

**
对于字符串是否等于某一字符,使用方法: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用作二维数组来说,那么创建对象和存放数据的时候要格外注意。如:

//1、构建一个类似于二维的变量packet	
static Vector<Vector<String>> pakage  = new Vector<Vector<String>>();`

//2、存放数据
city.addElement(k);
//添加包裹
pakage.addElement(new Vector<String>());
 //将新增加的数据添加到城市本身拥有数据的后面,
 //由于Vector类型的city是由1-N,但是下标是从0-N-1
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,防爆,内存不足

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值