📄 cqueue.java
字号:
package com.gftech.ictclas4j.segment;
import java.util.ArrayList;
public class CQueue {
// The chain sort according the weight of shortest path
private ArrayList<TagQueueElem> m_pHead;
// The node last accessed
private int m_pLastAccess;
public CQueue() {
m_pLastAccess=-1;
}
public boolean IsSingle() {
return (m_pHead != null && m_pHead.size() == 1);
}
public boolean IsEmpty(){
return IsEmpty(false);
}
public boolean IsEmpty(boolean bBrowsed) {
if (bBrowsed)
return m_pLastAccess >= 0;
else
return m_pHead != null && m_pHead.size() > 0;
}
/**
*
* @param nValue
* The value for parent node
* @param nIndex
* number of index in the parent node
* @param eWeight
* the weight of last path
* @return
*/
public boolean Push(int nValue, int nIndex, double eWeight) {
TagQueueElem tqe = new TagQueueElem();
tqe.eWeight = eWeight;
tqe.nIndex = nIndex;
tqe.nParent = nValue;
for (int i = 0; i < m_pHead.size(); i++) {
TagQueueElem elem = m_pHead.get(i);
if (elem.eWeight >= eWeight) {
m_pHead.add(i, tqe);
return true;
}
}
return false;
}
public boolean Push(int nValue, int nIndex){
return Push(nValue,nIndex,0);
}
public TagQueueElem Pop(boolean bModify, boolean bFirstGet) {
int index = 0;
TagQueueElem elem = null;
if (!bModify)
if (bFirstGet)
index = m_pLastAccess;
for (int i = 0; i < m_pHead.size(); i++) {
if (i == index) {
elem = m_pHead.get(i);
if (bModify)
m_pHead.remove(i);
else
m_pLastAccess = i + 1;
break;
}
}
return elem;
}
public TagQueueElem Pop(){
return Pop(true,true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -