cqueue.java
来自「基于中科院的ICTCLAS实现中文分词系统 开发工具是JAVA.经测试,效果很好」· Java 代码 · 共 89 行
JAVA
89 行
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 + =
减小字号Ctrl + -
显示快捷键?