|
4 | 4 | fromabcimportABC,abstractmethod |
5 | 5 | fromtypingimportCallable,Dict,Iterable,Union,TypeVar,Generic |
6 | 6 | frommathimportinfasinfinity |
7 | | -importsortedcontainers# type: ignore |
| 7 | +importsortedcontainers# type: ignore |
8 | 8 |
|
9 | 9 | # introduce generic type |
10 | 10 | T=TypeVar("T") |
@@ -46,28 +46,29 @@ def __missing__(self, k) -> SearchNode[T]: |
46 | 46 |
|
47 | 47 |
|
48 | 48 | classOpenSet(Generic[SNType]): |
49 | | - |
50 | | -def__init__(self)->None: |
51 | | -self.sortedlist=sortedcontainers.SortedList(key=lambdax:x.fscore) |
| 49 | +def__init__(self)->None: |
| 50 | +self.sortedlist=sortedcontainers.SortedList(key=lambdax:x.fscore) |
52 | 51 |
|
53 | | -defpush(self,item:SNType)->None: |
54 | | -item.in_openset=True |
55 | | -self.sortedlist.add(item) |
| 52 | +defpush(self,item:SNType)->None: |
| 53 | +item.in_openset=True |
| 54 | +self.sortedlist.add(item) |
56 | 55 |
|
57 | | -defpop(self)->SNType: |
58 | | -item=self.sortedlist.pop(0) |
59 | | -item.in_openset=False |
60 | | -returnitem |
| 56 | +defpop(self)->SNType: |
| 57 | +item=self.sortedlist.pop(0) |
| 58 | +item.in_openset=False |
| 59 | +returnitem |
61 | 60 |
|
62 | | -defremove(self,item:SNType)->None: |
63 | | -self.sortedlist.remove(item) |
64 | | -item.in_openset=False |
| 61 | +defremove(self,item:SNType)->None: |
| 62 | +self.sortedlist.remove(item) |
| 63 | +item.in_openset=False |
| 64 | + |
| 65 | +def__len__(self)->int: |
| 66 | +returnlen(self.sortedlist) |
65 | 67 |
|
66 | | -def__len__(self)->int: |
67 | | -returnlen(self.sortedlist) |
68 | 68 |
|
69 | 69 | ################################################################################* |
70 | 70 |
|
| 71 | + |
71 | 72 | classAStar(ABC,Generic[T]): |
72 | 73 | __slots__= () |
73 | 74 |
|
|