数据结构(Java)队列实现
核心代码
public class Queue {
//队列表头/表尾
private Node first = null;
private Node lase = null;
public int getN() {
return N;
}
//计数器
private int N = 0;
//节点
private class Node{
Object obj;
Node next;
}
//判断队列是否为空
public Boolean isEmpty(){
return first == null;
}
//添加队列数据
public void EnQueue(Object obj){
Node oldNode = lase;
lase = new Node();
lase.obj = obj;
lase.next = null;
if(isEmpty()) {
oldNode = lase;
first = lase;
}
oldNode.next = lase;
N++;
}
//删除队列数据
public Object UnQueue(){
Object obj = first.obj;
first = first.next;
if (isEmpty()){
System.out.println("队列为空");
return "";
}
N--;
return obj;
}
//遍历
public void print(){
Node node_text = first;
for(int i = 0; i < N; i++){
System.out.println(node_text.obj);
node_text = node_text.next;
}
}
}
测试代码
public class text {
public static void main(String[] args){
Queue T = new Queue();
System.out.println("N = "+ T.getN());
System.out.println(T.isEmpty() ? "队列为空" : "队列有值");
T.EnQueue(1);
T.EnQueue(2);
System.out.println("N = "+ T.getN());
T.EnQueue(3);
T.EnQueue(4);
System.out.println("N = "+ T.getN());
T.print();
T.UnQueue();
T.UnQueue();
System.out.println();
T.print();
System.out.println(T.isEmpty() ? "队列为空" : "队列有值");
System.out.println("N = "+ T.getN());
}
}
控制台运行:
"C:Program FilesJavajdk1.8.0_333injava.exe" "-javaagent:D:IDEAIntelliJ IDEA Community Edition 2020.3libidea_rt.jar=51257:D:IDEAIntelliJ IDEA Community Edition 2020.3in" -Dfile.encoding=UTF-8 -classpath "C:Program FilesJavajdk1.8.0_333jrelibcharsets.jar;C:Program FilesJavajdk1.8.0_333jrelibdeploy.jar;C:Program FilesJavajdk1.8.0_333jrelibextaccess-bridge-64.jar;C:Program FilesJavajdk1.8.0_333jrelibextcldrdata.jar;C:Program FilesJavajdk1.8.0_333jrelibextdnsns.jar;C:Program FilesJavajdk1.8.0_333jrelibextjaccess.jar;C:Program FilesJavajdk1.8.0_333jrelibextjfxrt.jar;C:Program FilesJavajdk1.8.0_333jrelibextlocaledata.jar;C:Program FilesJavajdk1.8.0_333jrelibext ashorn.jar;C:Program FilesJavajdk1.8.0_333jrelibextsunec.jar;C:Program FilesJavajdk1.8.0_333jrelibextsunjce_provider.jar;C:Program FilesJavajdk1.8.0_333jrelibextsunmscapi.jar;C:Program FilesJavajdk1.8.0_333jrelibextsunpkcs11.jar;C:Program FilesJavajdk1.8.0_333jrelibextzipfs.jar;C:Program FilesJavajdk1.8.0_333jrelibjavaws.jar;C:Program FilesJavajdk1.8.0_333jrelibjce.jar;C:Program FilesJavajdk1.8.0_333jrelibjfr.jar;C:Program FilesJavajdk1.8.0_333jrelibjfxswt.jar;C:Program FilesJavajdk1.8.0_333jrelibjsse.jar;C:Program FilesJavajdk1.8.0_333jrelibmanagement-agent.jar;C:Program FilesJavajdk1.8.0_333jrelibplugin.jar;C:Program FilesJavajdk1.8.0_333jrelib esources.jar;C:Program FilesJavajdk1.8.0_333jrelib t.jar;E:······后端······1.2 ····java系列···· 1_代码库练习队列outproductionuntitled" text N = 0 队列为空 N = 2 N = 4 1 2 3 4 3 4 队列有值 N = 2 进程已结束,退出代码为 0
感谢观看~
下一篇:
Java数据结构与算法之学习路线
