Home | History | Annotate | Download | only in ADT

Lines Matching defs:TreeTy

372   typedef ImutAVLTree<ImutInfo> TreeTy;
373 typedef typename TreeTy::value_type_ref value_type_ref;
374 typedef typename TreeTy::key_type_ref key_type_ref;
376 typedef DenseMap<unsigned, TreeTy*> CacheTy;
380 std::vector<TreeTy*> createdNodes;
381 std::vector<TreeTy*> freeNodes;
406 TreeTy* add(TreeTy* T, value_type_ref V) {
413 TreeTy* remove(TreeTy* T, key_type_ref V) {
420 TreeTy* getEmptyTree() const { return nullptr; }
430 bool isEmpty(TreeTy* T) const { return !T; }
431 unsigned getHeight(TreeTy* T) const { return T ? T->getHeight() : 0; }
432 TreeTy* getLeft(TreeTy* T) const { return T->getLeft(); }
433 TreeTy* getRight(TreeTy* T) const { return T->getRight(); }
434 value_type_ref getValue(TreeTy* T) const { return T->value; }
439 unsigned incrementHeight(TreeTy* L, TreeTy* R) const {
445 static bool compareTreeWithSection(TreeTy* T,
446 typename TreeTy::iterator& TI,
447 typename TreeTy::iterator& TE) {
448 typename TreeTy::iterator I = T->begin(), E = T->end();
466 TreeTy* createNode(TreeTy* L, value_type_ref V, TreeTy* R) {
468 TreeTy* T;
475 T = (TreeTy*) A.Allocate<TreeTy>();
477 new (T) TreeTy(this, L, R, V, incrementHeight(L,R));
482 TreeTy* createNode(TreeTy* newLeft, TreeTy* oldTree, TreeTy* newRight) {
488 TreeTy *N = createdNodes[i];
497 TreeTy* balanceTree(TreeTy* L, value_type_ref V, TreeTy* R) {
504 TreeTy *LL = getLeft(L);
505 TreeTy *LR = getRight(L);
512 TreeTy *LRL = getLeft(LR);
513 TreeTy *LRR = getRight(LR);
521 TreeTy *RL = getLeft(R);
522 TreeTy *RR = getRight(R);
529 TreeTy *RLL = getLeft(RL);
530 TreeTy *RLR = getRight(RL);
541 TreeTy* add_internal(value_type_ref V, TreeTy* T) {
561 TreeTy* remove_internal(key_type_ref K, TreeTy* T) {
580 TreeTy* combineTrees(TreeTy* L, TreeTy* R) {
585 TreeTy* OldNode;
586 TreeTy* newRight = removeMinBinding(R,OldNode);
590 TreeTy* removeMinBinding(TreeTy* T, TreeTy*& Noderemoved) {
602 void markImmutable(TreeTy* T) {
611 TreeTy *getCanonicalTree(TreeTy *TNew) {
621 TreeTy *&entry = Cache[maskCacheIndex(digest)];
625 for (TreeTy *T = entry ; T != nullptr; T = T->next) {
627 typename TreeTy::iterator TI = T->begin(), TE = T->end();
662 typedef ImutAVLTree<ImutInfo> TreeTy;
665 ImutAVLTreeGenericIterator(const TreeTy *Root) {
669 TreeTy &operator*() const {
671 return *reinterpret_cast<TreeTy *>(stack.back() & ~Flags);
673 TreeTy *operator->() const { return &*this; }
713 TreeTy* Current = reinterpret_cast<TreeTy*>(stack.back() & ~Flags);
717 if (TreeTy* L = Current->getLeft())
723 if (TreeTy* R = Current->getRight())
739 TreeTy* Current = reinterpret_cast<TreeTy*>(stack.back() & ~Flags);
747 if (TreeTy* L = Current->getLeft())
753 if (TreeTy* R = Current->getRight())
771 typedef ImutAVLTree<ImutInfo> TreeTy;
773 ImutAVLTreeInOrderIterator(const TreeTy* Root) : InternalItr(Root) {
788 TreeTy &operator*() const { return *InternalItr; }
789 TreeTy *operator->() const { return &*InternalItr; }
816 /// Generic iterator that wraps a T::TreeTy::iterator and exposes
821 ImutAVLValueIterator<T>, typename T::TreeTy::iterator,
823 typename T::TreeTy::iterator>::iterator_category,
826 explicit ImutAVLValueIterator(typename T::TreeTy *Tree)
965 typedef ImutAVLTree<ValInfo> TreeTy;
968 TreeTy *Root;
975 explicit ImmutableSet(TreeTy* R) : Root(R) {
997 typename TreeTy::Factory F;
1023 TreeTy *NewT = F.add(Old.Root, V);
1035 TreeTy *NewT = F.remove(Old.Root, V);
1041 typename TreeTy::Factory *getTreeFactory() const {
1042 return const_cast<typename TreeTy::Factory *>(&F);
1061 TreeTy *getRoot() {
1066 TreeTy *getRootWithoutRetain() const {
1117 typedef ImutAVLTree<ValInfo> TreeTy;
1118 typedef typename TreeTy::Factory FactoryTy;
1121 TreeTy *Root;
1129 explicit ImmutableSetRef(TreeTy* R, FactoryTy *F)
1176 TreeTy *getRootWithoutRetain() const {