作者ric2k1 (Ric)
看板EE_DSnP
標題[公告] AdtTest::printBackward() function 修正
時間Thu May 15 21:51:58 2008
上面有同學說到, 原先 printBackward() 的寫法:
AdtType<AdtTestObj>::iterator li = _container.end(); --li;
#ifdef RANDOM_ACCESS
for (int i = idx; i >= 0; --i)
#else // DList
while (li != _container.end())
#endif // RANDOM_ACCESS
printData(idx--, li--, r);
對 bst 不能 work, 因為 bst 的 begin() 跟 end() 並沒有必要連在一起.
所以, 有做到 bst 的同學, 請做以下修正:
AdtType<AdtTestObj>::iterator li = _container.end(); --li;
#ifdef RANDOM_ACCESS
for (int i = idx; i >= 0; --i)
printData(idx--, li--, r);
#else // for DList and BST
do {
printData(idx, li, r);
--idx;
} while (li-- != _container.begin());
#endif // RANDOM_ACCESS
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.121.129.110
1F:推 BattleRoyale:所以這塊改掉dlist和dynamic array還能work嗎 05/15 21:56
2F:→ ric2k1:試過了, 可以! 05/15 22:00