Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція АСД по графам.pdf
Скачиваний:
9
Добавлен:
19.02.2016
Размер:
160.64 Кб
Скачать

 

 

 

Алгоритмы на графах

class GrafSpis implements Graf {

 

private int Ver, Reb;

private boolean orient;

LinkedList <Integer> mas[];

 

GrafSpis(int V, boolean or) {

 

Ver = V;

orient = or;

mas = new LinkedList[V];

for(int k=0; k<mas.length; k++)

mas[k] = new LinkedList <Integer> ();

}

 

 

 

 

public int getV() {

return Ver;

}

public int getR() {

return Reb;

}

public boolean getDir() {

return orient; }

public void inst(Rebro r) {

 

 

int s = r.i,

e = r.j;

mas[s].add(e);

if (!orient)

mas[e].add(s);

 

Reb++;

 

 

 

 

}

 

 

 

25

Алгоритмы на графах

public void del(Rebro r) { int s=r.i, e=r.j;

if (!mas[s].isEmpty()) mas[s].remove(mas[s].indexOf(e)); if (!orient) mas[e].remove(mas[e].indexOf(s));

Reb--;

}

public boolean find(int x, int y) { return mas[x].contains(y); } void show() {

for(int s=0; s<Ver; s++) { System.out.print("\n"+s+": "); System.out.print(mas[s]);

}

}

}

26

Алгоритмы на графах

Enter number vershin -> 5 Add rebro? (Yes - y, No - n) y Enter value vershin rebra -> 0 1 Add rebro? (Yes - y, No - n) y Enter value vershin rebra -> 1 2 Add rebro? (Yes - y, No - n) y Enter value vershin rebra -> 2 3 Add rebro? (Yes - y, No - n) y Enter value vershin rebra -> 2 4 Add rebro? (Yes - y, No - n) n Graf:

0:[1]

1:[0, 2]

2:[1, 3, 4]

3:[2]

4:[2]

Delete rebro? (Yes - y, No - n) y Enter value vershin rebra -> 0 1 Delete rebro? (Yes - y, No - n) n Graf after delete:

0:[]

1:[2]

2:[1, 3, 4]

3:[2]

4:[2]

Enter rebro for find? (Yes - y, No - n) n

27