瀏覽代碼

avl_tree: fixing tests

undefined
Guillaume Bittoun Sam Hocevar <sam@hocevar.net> 10 年之前
父節點
當前提交
9b46f5d22b
共有 2 個檔案被更改,包括 9 行新增7 行删除
  1. +8
    -6
      src/lol/algorithm/avl_tree.h
  2. +1
    -1
      src/t/algorithm/avl_tree.cpp

+ 8
- 6
src/lol/algorithm/avl_tree.h 查看文件

@@ -123,14 +123,16 @@ protected:

if (this->get_balance() == 2)
{
return this->rotate(CW);
return this->rotate(CCW);
}
else if (this->get_balance() == -2)
{
return this->rotate(CCW);
return this->rotate(CW);
}
else
ASSERT(lol::abs(this->m_stairs_lo - this->m_stairs_hi) < 3);
ASSERT(lol::abs(this->m_stairs_hi - this->m_stairs_lo) < 3);

return 0;
}

enum Rotation { CW = 0, CCW = 1 };
@@ -169,13 +171,13 @@ protected:

void compute_balance()
{
this->m_stairs_lo = this->m_lo ? this->m_lo->m_stairs_lo + this->m_lo->m_stairs_hi : 0;
this->m_stairs_hi = this->m_hi ? this->m_hi->m_stairs_lo + this->m_lo->m_stairs_hi : 0;
this->m_stairs_lo = this->m_lo ? this->m_lo->m_stairs_lo + this->m_lo->m_stairs_hi + 1 : 0;
this->m_stairs_hi = this->m_hi ? this->m_hi->m_stairs_lo + this->m_hi->m_stairs_hi + 1 : 0;
}

int get_balance()
{
return this->m_stairs_lo - this->m_stairs_hi;
return this->m_stairs_hi - this->m_stairs_lo;
}

protected:


+ 1
- 1
src/t/algorithm/avl_tree.cpp 查看文件

@@ -59,7 +59,7 @@ lolunit_declare_fixture(AvlTreeTest)
lolunit_assert_equal(tree.get_root_balance(), -1);

lolunit_assert_equal(tree.insert(-1, 1), true);
lolunit_assert_equal(tree.get_root_balance(), 0);
lolunit_assert_equal(tree.get_root_balance(), -1);
}
};



Loading…
取消
儲存