Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private int[] getResult() {
- int d[] = new int[n + 1];
- for (int i = 0; i <= n; i++) {
- d[i] = -1;
- }
- d[source] = 0;
- boolean viz[] = new boolean[n + 1];
- LinkedList<Integer> list = new LinkedList<>();
- list.add(source);
- viz[source] = true;
- int aux_node;
- while(!list.isEmpty()) {
- aux_node = list.poll();
- for(int i = 0; i < adj[aux_node].size(); i++) {
- if(viz[adj[aux_node].get(i) ] == false) {
- list.add(adj[aux_node].get(i));
- viz[adj[aux_node].get(i)] = true;
- d[adj[aux_node].get(i)] = d[aux_node] + 1;
- }
- }
- }
- return d;
- }
- private ArrayList<Integer> getResult() {
- ArrayList<Integer> topsort = new ArrayList<>();
- boolean viz[] = new boolean[n + 1];
- int[] nr_muchii = new int[n + 1];
- for(int i = 1; i <= n; i++) {
- for(int x : adj[i]) {
- nr_muchii[x] += 1;
- }
- }
- LinkedList<Integer> Q = new LinkedList<>();
- for(int i = 1; i <= n; i++) {
- if(nr_muchii[i] == 0)
- Q.add(i);
- }
- int aux_node;
- while(!Q.isEmpty()) {
- aux_node = (int) Q.poll();
- viz[aux_node] = true;
- topsort.add(aux_node);
- for(int x : adj[aux_node]) {
- nr_muchii[x] -= 1;
- if(viz[x] == false && nr_muchii[x] == 0)
- Q.add(x);
- }
- }
- return topsort;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement