Advertisement
Guest User

Untitled

a guest
May 31st, 2016
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. var Graf = function (wierzcholki, krawedzie, stopnie) {
  2. var that = this;
  3.  
  4. that.wierzcholki = wierzcholki;
  5. that.stopnie = stopnie
  6. that.macierzKrawedzi = krawedzie;
  7.  
  8. var graf = {
  9.  
  10. dodajKrawedz: function (n, m) { //dodanie krzywej
  11. if (n != m) {
  12. that.macierzKrawedzi[n][m] = 1;
  13. that.macierzKrawedzi[m][n] = 1;
  14. } else {
  15. console.log('Nie można dodać połączenia do tego samego siebie');
  16. }
  17. },
  18. maKrawedz: function(n,m){
  19. return that.macierzKrawedzi[n][m] === 1 && that.macierzKrawedzi[m][n] === 1;
  20. }, // n < m !
  21. usunKrawedz: function(n, m){
  22. that.macierzKrawedzi[n][m] = 0;
  23. that.macierzKrawedzi[m][n] = 0;
  24. that.stopnie[n]--;
  25. that.stopnie[m]--;
  26.  
  27. if(that.stopnie[m] <= 0) {
  28. this.usunWierzcholek(m);
  29. }
  30.  
  31. if(that.stopnie[n] <= 0) {
  32. this.usunWierzcholek(n);
  33. }
  34. },
  35. usunWierzcholek: function(n){
  36. var indexToRemove = that.wierzcholki.indexOf(n);
  37. that.stopnie.splice(indexToRemove, 1);
  38. that.wierzcholki.splice(indexToRemove, 1);
  39.  
  40. for(var i=0; i<that.macierzKrawedzi.length; i++){
  41. that.macierzKrawedzi[i].splice(n, 1);
  42. }
  43.  
  44. that.macierzKrawedzi.splice(n, 1);
  45. },
  46. rysujKrawedzie: function(){
  47. console.table(that.macierzKrawedzi);
  48. },
  49. pokazStopnie: function(){
  50. console.table(that.stopnie);
  51. },
  52. wierzcholki: function(){
  53. return that.wierzcholki.length;
  54. }
  55. };
  56.  
  57. return graf;
  58. }
  59.  
  60.  
  61. var a = Graf(
  62. [0,1,2,3,4,5],
  63. [
  64. [0,1,0,0,0,0],
  65. [1,0,1,1,0,0],
  66. [0,1,0,0,0,0],
  67. [0,1,0,0,1,1],
  68. [0,0,0,1,0,0],
  69. [0,0,0,1,0,0]
  70. ],
  71. [1,3,1,3,1,1]
  72. );
  73.  
  74. var randomMinCut = function(g){
  75. var i = 0;
  76. var G = [g];
  77. while(G[i].wierzcholki() > 2){
  78. var krawedz = randomNumber(0, G[i].wierzcholki()-1);
  79. G.push(clone(G[i]));
  80. console.log("KRAWEDZ DO USUNIECIA ", krawedz, " KRAWEDZIE W GRAFIE ", G[i+1].rysujKrawedzie())
  81. G[i+1].usunKrawedz(krawedz)
  82. i++;
  83. }
  84.  
  85. console.table(G);
  86. }
  87.  
  88. // n,m inclusive
  89. var randomNumber = function(n,m){
  90. return Math.floor((Math.random() * m) + n);
  91. }
  92.  
  93. var clone = function(obj) {
  94. if (null == obj || "object" != typeof obj) return obj;
  95. var copy = obj.constructor();
  96. for (var attr in obj) {
  97. if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr];
  98. }
  99. return copy;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement