日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

数据结构(六)---队列的链式存储的实现---java版

發(fā)布時(shí)間:2024/1/23 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构(六)---队列的链式存储的实现---java版 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

---------------------------------------------節(jié)點(diǎn)設(shè)置------------------------------------

package com.cn.hbut.domain;
//節(jié)點(diǎn)設(shè)置 ? ? ? ? ? ? ? ? ??
public class Node {
Object data;
Node next;
//初始化一個(gè)數(shù)據(jù)域以及next域均為null的節(jié)點(diǎn)
public Node() {
this.data=null;
this.next=null;
}
//生成元素為obj,引用值為n的新節(jié)點(diǎn)
public Node(Object obj,Node n){
data=obj;
next=n;

}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
@Override
public String toString() {
return "Node [data=" + data + ", next=" + next + "]";
}


}

----------------------------------------接口定義-------------------------------------------

package com.cn.hbut.dao;


public interface Queue {
public void clear();
public int length();
public boolean full();
public boolean empty();
//入隊(duì)
public boolean enque(Object e);
//出隊(duì),需要?jiǎng)h除第一個(gè)元素
public Object dlque();
//獲取隊(duì)頭元素
public Object getf();

}


---------------------------------------具體的實(shí)現(xiàn)-----------------------------------------

package com.cn.hbut.daoImpl;

import com.cn.hbut.dao.Queue;
import com.cn.hbut.domain.Node;
/**
?* @author Administrator
?* 隊(duì)列的特點(diǎn):
?* 1.只允許在隊(duì)尾插入,隊(duì)首刪除元素;
?* 2.先進(jìn)先出
?* 3.無(wú)大小限制(存貯范圍內(nèi))
?*/
public class LinkedQue implements Queue {
Node front,rear;
public LinkedQue() {
front=rear= new Node();
}
@Override
public void clear() {
front.setNext(null);
//對(duì)尾指向隊(duì)頭
rear =front;
}
@Override
public int length() {
int i=0;
Node p= front.getNext();
while(p!=null){
p=p.getNext();
i++;
}
return i;
}
@Override
public boolean full() {
return false;
}


@Override
public boolean empty() {
return front==rear;
}


@Override
public boolean enque(Object e) {
//加入的節(jié)點(diǎn)的next域存放隊(duì)尾的next域
Node p = new Node(e, rear.getNext());
rear.setNext(p);
//把p設(shè)置為隊(duì)尾
rear=p;
return true;
}
//出隊(duì),刪除第一個(gè)元素
@Override
public Object dlque() {
Node s = front.getNext();
Object obj =s.getData();
front.setNext(s.getNext());
return obj;
}
//獲取隊(duì)首元素,無(wú)需刪除
@Override
public Object getf() {

return front.getNext().getData();
}
//-----------------------------測(cè)試鏈隊(duì)--------------------------
public static void main(String[] args) {
//創(chuàng)建一個(gè)鏈隊(duì)
LinkedQue que = new LinkedQue();
//三個(gè)元素開(kāi)始入隊(duì)
que.enque(1);
que.enque(2);
que.enque(3);
System.out.println("隊(duì)列元素大小"+que.length());
//獲取隊(duì)首元素
Object obj=que.getf();
System.out.println("隊(duì)首元素:"+obj);
//出隊(duì)一個(gè)元素
que.dlque();
//當(dāng)前的隊(duì)頭元素
System.out.println("出隊(duì)一個(gè)元素后的隊(duì)首元素:"+que.getf());

}



}

總結(jié)

以上是生活随笔為你收集整理的数据结构(六)---队列的链式存储的实现---java版的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。