📄 tset.cc
字号:
assert(c <= a); c.del(a(a.first())); assert(c <= a); assert(c != a); Pix i = a.first(); assert(!c.contains(a(i))); for (a.next(i); i != 0; a.next(i)) assert(c.contains(a(i))); c.add(a(a.first())); for (i = a.first(); i != 0; a.next(i)) assert(c.contains(a(i))); c |= b; assert(b <= c); for (i = b.first(); i != 0; b.next(i)) assert(c.contains(b(i))); for (i = a.first(); i != 0; a.next(i)) assert(c.contains(a(i))); c &= a; for (i = a.first(); i != 0; a.next(i)) assert(c.contains(a(i))); c -= a; assert(!(a <= c)); for (i = a.first(); i != 0; a.next(i)) assert(!c.contains(a(i))); for (i = b.first(); i != 0; b.next(i)) c.del(b(i)); assert(c.empty()); assert(a.OK()); assert(b.OK()); assert(c.OK()); generictest(a, b, c);}#include "iOXPSet.h"void OXPtest(){ intOXPSet a(SIZE); add(nums, a); assert(a.length() == SIZE); for (int j = 1; j <= SIZE; ++j) assert(a.contains(j)); intOXPSet b(SIZE); add(odds, b); assert(b.length() == SIZE); intOXPSet c(SIZE); add(dups, c); assert(c.length() == SIZE/2); assert(c <= a); intOXPSet d(a); d &= b; cout << "a: "; printset(a); cout << "b: "; printset(b); cout << "c: "; printset(c); cout << "d: "; printset(d); assert(d.length() == SIZE/2); for (Pix p = d.first(); p; d.next(p)) assert((d(p) & 1) != 0); a.del(1); assert(a.length() == SIZE-1); assert(!a.contains(1)); c.clear(); assert(c.empty()); c |= a; assert(c == a); assert(c <= a); c.del(a(a.first())); assert(c <= a); assert(c != a); Pix i = a.first(); assert(!c.contains(a(i))); for (a.next(i); i != 0; a.next(i)) assert(c.contains(a(i))); c.add(a(a.first())); for (i = a.first(); i != 0; a.next(i)) assert(c.contains(a(i))); c |= b; assert(b <= c); for (i = b.first(); i != 0; b.next(i)) assert(c.contains(b(i))); for (i = a.first(); i != 0; a.next(i)) assert(c.contains(a(i))); c &= a; for (i = a.first(); i != 0; a.next(i)) assert(c.contains(a(i))); c -= a; assert(!(a <= c)); for (i = a.first(); i != 0; a.next(i)) assert(!c.contains(a(i))); for (i = b.first(); i != 0; b.next(i)) c.del(b(i)); assert(c.empty()); assert(a.OK()); assert(b.OK()); assert(c.OK()); generictest(a, b, c);}#include "iOSLSet.h"void OSLtest(){ intOSLSet a; add(nums, a); assert(a.length() == SIZE); for (int j = 1; j <= SIZE; ++j) assert(a.contains(j)); intOSLSet b; add(odds, b); assert(b.length() == SIZE); intOSLSet c; add(dups, c); assert(c.length() == SIZE/2); assert(c <= a); intOSLSet d(a); d &= b; cout << "a: "; printset(a); cout << "b: "; printset(b); cout << "c: "; printset(c); cout << "d: "; printset(d); assert(d.length() == SIZE/2); for (Pix p = d.first(); p; d.next(p)) assert((d(p) & 1) != 0); a.del(1); assert(a.length() == SIZE-1); assert(!a.contains(1)); c.clear(); assert(c.empty()); c |= a; assert(c == a); assert(c <= a); c.del(a(a.first())); assert(c <= a); assert(c != a); Pix i = a.first(); assert(!c.contains(a(i))); for (a.next(i); i != 0; a.next(i)) assert(c.contains(a(i))); c.add(a(a.first())); for (i = a.first(); i != 0; a.next(i)) assert(c.contains(a(i))); c |= b; assert(b <= c); for (i = b.first(); i != 0; b.next(i)) assert(c.contains(b(i))); for (i = a.first(); i != 0; a.next(i)) assert(c.contains(a(i))); c &= a; for (i = a.first(); i != 0; a.next(i)) assert(c.contains(a(i))); c -= a; assert(!(a <= c)); for (i = a.first(); i != 0; a.next(i)) assert(!c.contains(a(i))); for (i = b.first(); i != 0; b.next(i)) c.del(b(i)); assert(c.empty()); assert(a.OK()); assert(b.OK()); assert(c.OK()); generictest(a, b, c);}#include "iBSTSet.h"void BSTtest(){ intBSTSet a; add(nums, a); assert(a.length() == SIZE); for (int j = 1; j <= SIZE; ++j) assert(a.contains(j)); a.balance(); assert(a.OK()); for ( j = 1; j <= SIZE; ++j) assert(a.contains(j)); intBSTSet b; add(odds, b); assert(b.length() == SIZE); intBSTSet c; add(dups, c); assert(c.length() == SIZE/2); assert(c <= a); intBSTSet d(a); d &= b; cout << "a: "; printset(a); cout << "b: "; printset(b); cout << "c: "; printset(c); cout << "d: "; printset(d); assert(d.length() == SIZE/2); for (Pix p = d.first(); p; d.next(p)) assert((d(p) & 1) != 0); a.del(1); assert(a.length() == SIZE-1); assert(!a.contains(1)); c.clear(); assert(c.empty()); c |= a; assert(c == a); assert(c <= a); c.del(a(a.first())); assert(c <= a); assert(c != a); Pix i = a.first(); assert(!c.contains(a(i))); for (a.next(i); i != 0; a.next(i)) assert(c.contains(a(i))); c.add(a(a.first())); for (i = a.first(); i != 0; a.next(i)) assert(c.contains(a(i))); c |= b; assert(b <= c); for (i = b.first(); i != 0; b.next(i)) assert(c.contains(b(i))); for (i = a.first(); i != 0; a.next(i)) assert(c.contains(a(i))); c &= a; for (i = a.first(); i != 0; a.next(i)) assert(c.contains(a(i))); c -= a; assert(!(a <= c)); for (i = a.first(); i != 0; a.next(i)) assert(!c.contains(a(i))); for (i = b.first(); i != 0; b.next(i)) c.del(b(i)); assert(c.empty()); assert(a.OK()); assert(b.OK()); assert(c.OK()); generictest(a, b, c);}#include "iAVLSet.h"void AVLtest(){ intAVLSet a; add(nums, a); assert(a.length() == SIZE); for (int j = 1; j <= SIZE; ++j) assert(a.contains(j)); intAVLSet b; add(odds, b); assert(b.length() == SIZE); intAVLSet c; add(dups, c); assert(c.length() == SIZE/2); assert(c <= a); intAVLSet d(a); d &= b; cout << "a: "; printset(a); cout << "b: "; printset(b); cout << "c: "; printset(c); cout << "d: "; printset(d); assert(d.length() == SIZE/2); for (Pix p = d.first(); p; d.next(p)) assert((d(p) & 1) != 0); a.del(1); assert(a.length() == SIZE-1); assert(!a.contains(1)); c.clear(); assert(c.empty()); c |= a; assert(c == a); assert(c <= a); c.del(a(a.first())); assert(c <= a); assert(c != a); Pix i = a.first(); assert(!c.contains(a(i))); for (a.next(i); i != 0; a.next(i)) assert(c.contains(a(i))); c.add(a(a.first())); for (i = a.first(); i != 0; a.next(i)) assert(c.contains(a(i))); c |= b; assert(b <= c); for (i = b.first(); i != 0; b.next(i)) assert(c.contains(b(i))); for (i = a.first(); i != 0; a.next(i)) assert(c.contains(a(i))); c &= a; for (i = a.first(); i != 0; a.next(i)) assert(c.contains(a(i))); c -= a; assert(!(a <= c)); for (i = a.first(); i != 0; a.next(i)) assert(!c.contains(a(i))); for (i = b.first(); i != 0; b.next(i)) c.del(b(i)); assert(c.empty()); assert(a.OK()); assert(b.OK()); assert(c.OK()); generictest(a, b, c);}#include "iSplaySet.h"void Splaytest(){ intSplaySet a; add(nums, a); assert(a.length() == SIZE); for (int j = 1; j <= SIZE; ++j) assert(a.contains(j)); intSplaySet b; add(odds, b); assert(b.length() == SIZE); intSplaySet c; add(dups, c); assert(c.length() == SIZE/2); assert(c <= a); intSplaySet d(a); d &= b; cout << "a: "; printset(a); cout << "b: "; printset(b); cout << "c: "; printset(c); cout << "d: "; printset(d); assert(d.length() == SIZE/2); for (Pix p = d.first(); p; d.next(p)) assert((d(p) & 1) != 0); a.del(1); assert(a.length() == SIZE-1); assert(!a.contains(1)); c.clear(); assert(c.empty()); c |= a; assert(c == a); assert(c <= a); c.del(a(a.first())); assert(c <= a); assert(c != a); Pix i = a.first(); assert(!c.contains(a(i))); for (a.next(i); i != 0; a.next(i)) assert(c.contains(a(i))); c.add(a(a.first())); for (i = a.first(); i != 0; a.next(i)) assert(c.contains(a(i))); c |= b; assert(b <= c); for (i = b.first(); i != 0; b.next(i)) assert(c.contains(b(i))); for (i = a.first(); i != 0; a.next(i)) assert(c.contains(a(i))); c &= a; for (i = a.first(); i != 0; a.next(i)) assert(c.contains(a(i))); c -= a; assert(!(a <= c)); for (i = a.first(); i != 0; a.next(i)) assert(!c.contains(a(i))); for (i = b.first(); i != 0; b.next(i)) c.del(b(i)); assert(c.empty()); assert(a.OK()); assert(b.OK()); assert(c.OK()); generictest(a, b, c);}main(int argc, char** argv){ if (argc > 1) { SIZE = abs(atoi(argv[1])); SIZE &= ~1; } else SIZE = 100; nums = new int[SIZE]; odds = new int[SIZE]; dups = new int[SIZE]; makenums(); makeodds(); makedups(); start_timer(); cout << "VHtest\n"; VHtest(); if (ptimes) cout << "\ntime = " << return_elapsed_time(0.0) << "\n"; start_timer(); cout << "VOHtest\n"; VOHtest(); if (ptimes) cout << "\ntime = " << return_elapsed_time(0.0) << "\n"; start_timer(); cout << "CHtest\n"; CHtest(); if (ptimes) cout << "\ntime = " << return_elapsed_time(0.0) << "\n"; start_timer(); cout << "SLtest\n"; SLtest(); if (ptimes) cout << "\ntime = " << return_elapsed_time(0.0) << "\n"; start_timer(); cout << "XPtest\n"; XPtest(); if (ptimes) cout << "\ntime = " << return_elapsed_time(0.0) << "\n"; start_timer(); cout << "OXPtest\n"; OXPtest(); if (ptimes) cout << "\ntime = " << return_elapsed_time(0.0) << "\n"; start_timer(); cout << "OSLtest\n"; OSLtest(); if (ptimes) cout << "\ntime = " << return_elapsed_time(0.0) << "\n"; start_timer(); cout << "BSTtest\n"; BSTtest(); if (ptimes) cout << "\ntime = " << return_elapsed_time(0.0) << "\n"; start_timer(); cout << "AVLtest\n"; AVLtest(); if (ptimes) cout << "\ntime = " << return_elapsed_time(0.0) << "\n"; start_timer(); cout << "Splaytest\n"; Splaytest(); if (ptimes) cout << "\ntime = " << return_elapsed_time(0.0) << "\n";}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -