@SuppressWarnings("unchecked")
	public static void computeKplex(ArrayList<Integer> res,
			ArrayList<Integer> candidate, ArrayList<Integer> not) {
		int rSize = res.size();
		// 根据k-plex定义过滤备选集(最多不与k-1个节点相连)
		filterCandidate(res, candidate,not);
		
		int canSizeN = candidate.size();
		int sum = rSize + canSizeN;
		if (sum >= quasiCliqueSize) {// && sum >= kPlexSize
			if(candidate.isEmpty()){
				if(not.isEmpty()){
					String r = res.toString();
					System.out.println(r.substring(1, r.length()-1));
					cliquenum++;
				}else{
					dupnum++;
				}
				return;
			}
			if (judgeKplex2(res, candidate,critnodes))// 是kplex
			{
				if (duplicate(not,res, candidate,critnodes)) {
					dupnum++;
					return;
				}
				// 是clique输出
				String r = (candidate.size()>res.size()?candidate:res).toString();
				System.out.println(r.toString().substring(1, r.length()-1));
				return;
			} else {
				int y = candidate.get(candidate.size() - 1);// 其他节点，存在策略
				// 子图包含y
				// res中多了y
				ArrayList<Integer> resA = new ArrayList<Integer>();
				resA.addAll(res);
				resA.add(y);
				ArrayList<Integer> canA = new ArrayList<Integer>();
				ArrayList<Integer> notA = new ArrayList<Integer>();
				// canA.clear();
				getT2(canA, notA, y, candidate, not);
				// getT3(canA, y,candidate);
				// int p=canA.indexOf(y);
				// if(p!=-1)
				// canA.remove(p);
				levelNumber++;
				// 避免层数过多使得系统栈溢出，当levelNumber过大时(大于levelExtream)，将状态存栈
				if (levelNumber >= levelExtream) {
					SubGraph sA = new SubGraph(canA.size());
					sA.setCandidate(canA);
					sA.setRes(resA);
					sA.setNot(notA);
					stack.add(sA);

					ArrayList<Integer> resB = new ArrayList<Integer>(res.size());
					resB.addAll(res);
					candidate.remove(candidate.size() - 1);

					SubGraph sB = new SubGraph(candidate.size());
					sB.setCandidate(candidate);
					not.add(y);
					sB.setNot(not);
					sB.setRes(resB);
					stack.add(sB);
					return;
				}
				// 子图包含y
				computeKplex(resA, canA, notA);
				levelNumber--;
				// resA.remove(resA.size()-1);
				candidate.remove(candidate.size() - 1);
				not.add(y);
				// 子图不包含y
				computeKplex(res, candidate, not);
				levelNumber--;
				// 维护状态栈层数在合理的大小
				if (levelNumber <= -10)
					levelNumber = 0;
			}
		}
	}