Changes in / [458:bb022b8f9c8f:450:d5cfcff85dfd] in lemon
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/unionfind.h
r457 r236 1178 1178 if (nodes[nodes[jd].next].size < cmax) { 1179 1179 pushLeft(nodes[jd].next, nodes[jd].left); 1180 if ( nodes[jd].item == nodes[pd].item) {1181 nodes[nodes[jd].next].prio = nodes[ jd].prio;1182 nodes[nodes[jd].next].item = nodes[ jd].item;1180 if (less(nodes[jd].left, nodes[jd].next)) { 1181 nodes[nodes[jd].next].prio = nodes[nodes[jd].left].prio; 1182 nodes[nodes[jd].next].item = nodes[nodes[jd].left].item; 1183 1183 } 1184 1184 popLeft(pd); … … 1189 1189 popLeft(nodes[jd].next); 1190 1190 pushRight(jd, ld); 1191 if (less(ld, nodes[jd].left) || 1192 nodes[ld].item == nodes[pd].item) { 1191 if (less(ld, nodes[jd].left)) { 1193 1192 nodes[jd].item = nodes[ld].item; 1194 nodes[jd].prio = nodes[ ld].prio;1193 nodes[jd].prio = nodes[jd].prio; 1195 1194 } 1196 1195 if (nodes[nodes[jd].next].item == nodes[ld].item) { … … 1221 1220 if (nodes[nodes[jd].prev].size < cmax) { 1222 1221 pushRight(nodes[jd].prev, nodes[jd].right); 1223 if ( nodes[jd].item == nodes[pd].item) {1224 nodes[nodes[jd].prev].prio = nodes[ jd].prio;1225 nodes[nodes[jd].prev].item = nodes[ jd].item;1222 if (less(nodes[jd].right, nodes[jd].prev)) { 1223 nodes[nodes[jd].prev].prio = nodes[nodes[jd].right].prio; 1224 nodes[nodes[jd].prev].item = nodes[nodes[jd].right].item; 1226 1225 } 1227 1226 popRight(pd); … … 1232 1231 popRight(nodes[jd].prev); 1233 1232 pushLeft(jd, ld); 1234 if (less(ld, nodes[jd].right) || 1235 nodes[ld].item == nodes[pd].item) { 1233 if (less(ld, nodes[jd].right)) { 1236 1234 nodes[jd].item = nodes[ld].item; 1237 nodes[jd].prio = nodes[ ld].prio;1235 nodes[jd].prio = nodes[jd].prio; 1238 1236 } 1239 1237 if (nodes[nodes[jd].prev].item == nodes[ld].item) { … … 1403 1401 push(new_id, right_id); 1404 1402 pushRight(new_id, ~(classes[r].parent)); 1405 1406 if (less(~classes[r].parent, right_id)) { 1407 nodes[new_id].item = nodes[~classes[r].parent].item; 1408 nodes[new_id].prio = nodes[~classes[r].parent].prio; 1409 } else { 1410 nodes[new_id].item = nodes[right_id].item; 1411 nodes[new_id].prio = nodes[right_id].prio; 1412 } 1403 setPrio(new_id); 1413 1404 1414 1405 id = nodes[id].parent; … … 1450 1441 push(new_id, left_id); 1451 1442 pushLeft(new_id, ~(classes[l].parent)); 1452 1453 if (less(~classes[l].parent, left_id)) { 1454 nodes[new_id].item = nodes[~classes[l].parent].item; 1455 nodes[new_id].prio = nodes[~classes[l].parent].prio; 1456 } else { 1457 nodes[new_id].item = nodes[left_id].item; 1458 nodes[new_id].prio = nodes[left_id].prio; 1459 } 1443 setPrio(new_id); 1460 1444 1461 1445 id = nodes[id].parent;
Note: See TracChangeset
for help on using the changeset viewer.