本文整理汇总了C++中BST::PrintPre方法的典型用法代码示例。如果您正苦于以下问题:C++ BST::PrintPre方法的具体用法?C++ BST::PrintPre怎么用?C++ BST::PrintPre使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BST
的用法示例。
在下文中一共展示了BST::PrintPre方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(){
BST testBST;
BST testAssign;
BNode* temp;
int data;
PrintMenu();
cout << "-->";
char choice;
cin >> choice;
while(choice != 'q' && choice != 'Q'){
if (choice == '!'){
BST testCopy(testBST);
cout << "Result:" << "Print New Copy" << endl;
testCopy.PrintIn(cout); cout << endl;
testCopy.Insert(-10000);
cout << "Result: " << "Print Modified Copy" << endl;
testCopy.PrintIn(cout); cout << endl;
cout << "Result: " << "Print Original Test List" << endl;
testBST.PrintIn(cout); cout << endl;
}
else{
switch (choice){
case 'h':
case 'H': PrintMenu(); break;
case '+':
cin >> data;
testBST.Insert(data);
break;
case '-':
cin >> data;
testBST.Remove(data);
break;
case '@':
cout <<"Result:";
temp = testBST.AtCursor();
if (temp)
cout << temp->GetData() << endl;
else
cout << "NULL POINTER" << endl;
break;
case '<':
testBST.GoToBeginning();
break;
case '>':
testBST.GoToEnd();
break;
case 'n':
case 'N':
testBST.GoToNext();
break;
case 'p':
case 'P':
testBST.GoToPrev();
break;
case 'c':
case 'C':
testBST.ClearList();
break;
case 'e':
case 'E':
if (testBST.Empty())
cout <<"Result:" << "List Is Empty" << endl;
else
cout <<"Result:" << "List is Not Empty" << endl;
break;
case '#':
//assign list
testAssign = testBST;
testAssign.Insert(-100000);
cout << "Modify New List" << endl;
testAssign.PrintIn(cout); cout << endl;
cout << "Old List should not be affected" << endl;
testBST.PrintIn(cout); cout << endl;
testAssign.~BST();
cout << "Destroy New List" << endl;
cout << "Old List should not be affected" << endl;
testBST.PrintIn(cout); cout << endl;
break;
case '?':
cin >> data;
if (testBST.Find(data) != NULL)
cout << "Result:" << data << "\tfound" << endl;
else
cout << "Result:" << data << "\tnot found" << endl;
break;
case 'i':
case 'I':
cout << "Print INORDER" << endl;
testBST.PrintIn(cout); cout << endl;
break;
case 'r':
case 'R':
cout << "Print PREORDER" << endl;
testBST.PrintPre(cout); cout << endl;
//.........这里部分代码省略.........
示例2: main
int main() {
BST testBST;
cout << "inserting 20\n";
testBST.Insert(20);
cout << "inserting 15\n";
testBST.Insert(15);
cout << "inserting 30\n";
testBST.Insert(30);
cout << "inserting 5\n";
testBST.Insert(5);
cout << "inserting 18\n";
testBST.Insert(18);
cout << "inserting 40\n";
testBST.Insert(40);
cout << "inserting 25\n";
testBST.Insert(25);
cout << "calling PrintIn\n";
testBST.PrintIn(cout);
cout << "calling PrintPost\n";
testBST.PrintPost(cout);
cout << "calling PrintPre\n";
testBST.PrintPre(cout);
cout << "calling Find(4)\n";
BNode * found = testBST.Find(4);
cout << "found " << (*found).GetData() << endl;
testBST.ClearList();
cout << "Cleared list, is it empty? " << testBST.Empty() << endl;
testBST.Insert(5);
testBST.Insert(6);
cout << "Should return 5? " << testBST.getParent(testBST.Find(6))->GetData() << endl;
testBST.PrintIn(cout);
// test Remove with zero children
testBST.Remove(6);
cout << "Removed 6\n";
testBST.PrintIn(cout);
testBST.Remove(5);
cout << "Removed 5\n";
testBST.PrintIn(cout);
cout << "clearing List for further tests\n";
testBST.ClearList();
testBST.Insert(5);
testBST.Insert(6);
testBST.Insert(7);
testBST.PrintIn(cout);
// test Remove with one child
testBST.Remove(6);
cout << "Removed 6\n";
testBST.PrintIn(cout);
cout << "5 should now link to 7\n";
// test remove with two children
cout << "Clearing list\n";
testBST.ClearList();
testBST.Insert(20);
testBST.Insert(15);
testBST.Insert(30);
testBST.Insert(5);
testBST.Insert(18);
testBST.Insert(40);
testBST.Insert(25);
cout << "Tree is now:\n";
testBST.PrintIn(cout);
cout << "Removing 30\n";
testBST.Remove(30);
}