i = 0; i < nodeNum; i++) {Р for (int j = 0; j < nodeNum; j++) {Р if (adjmat[i][j] == 1) {Р sumOutdegree[i]++;Р } else {Р continue;Р }Р }Р this.setOutdegree(sumOutdegree);Р }Р?}Р?/**Р * 返回一个没有后继的顶点Р * Р * @returnР */Р?public int essors() {Р for (int row = 0; row < nVerts; row++) {Р boolean essor = false;Р for (int col = 0; col < nVerts; col++) {Р if (adjmat[row][col] > 0) {Р essor = true;Р break;Р }Р }Р if (!essor) {Р return row;Р }Р }Р return -1;Р?}Р?/**Р * 删除没有后继的顶点,并修改邻接矩阵Р * Р * @param vР */Р?public void deleteVertex(int v) {Р if (v != nVerts - 1) { // 不是最后一个顶点才做如下操作Р for (int i = v; i < nVerts - 1; i++) { // 从数组中删除已经拓扑排好序的节点Р NodeList[i] = NodeList[i + 1];Р }Р for (int i = v; i < nVerts - 1; i++) { // 修改邻接矩阵行Р moverowup(i, nVerts);Р }Р for (int i = v; i < nVerts - 1; i++) { // 修改邻接矩阵列