示例#1
0
int main(int argc, char *argv[]){
    Tree<int> Apple;

    Apple.Insert(8);
	Apple.Insert(10);
	Apple.Insert(4);
	Apple.Insert(2);
	Apple.Insert(6);
	Apple.Insert(5);
	
	// Apple.Remove(5);
	// Apple.Remove(4);

    
    cout << "PRE-ORDER:" << endl;
    Apple.TraversePreOrder(Apple.Root());
	cout << endl << endl;
	
	cout << "POS-ORDER:" << endl;
	Apple.TraversePosOrder(Apple.Root());
	cout << endl << endl;
		
	cout << "IN-ORDER:" << endl;
	Apple.TraverseInOrder(Apple.Root());
	cout << endl << endl;
	
	cout << "LEVEL-ORDER:" << endl;
	Apple.TraverseLevelOrder();
	cout << endl << endl;
	
    return 0;
}
示例#2
0
文件: Main.cpp 项目: JustinMorritt/C-
int main()
{
	Tree tree;
	RandGen rg;

	int i = 0;
	while (i < 100)
	{
		if (tree.Insert(rg(100) - 50))
		{
			++i; //Need a tree Transversal (display) "pre order" "post order"
		}
	}

	//TRANSVERSAL OUTPUTS  ******ROOT IS BEGGINING OF PRE AND END OF POST*********
	tree.InOrder(std::cout);
	std::cout << std::endl;
	std::cout << std::endl;
	tree.PreOrder(std::cout);
	std::cout << std::endl;
	std::cout << std::endl;
	tree.PostOrder(std::cout);
	std::cout << std::endl;
	std::cout << std::endl;

	system("pause");
	return 0;
}
int main(){
	Tree mTree;
	mTree.setHead();
	mTree.CreateTree(mTree.head,32);			//expected height of the tree	is 33.
	int Q; 
	string s;
	int num;
	for(int i=0;i<Q;i++){
		cin>>s;
		cin>>num;
		switch (s[0]){
		case 'a':		//add
			mTree.Insert(num);			
			break;
		case 'd':		//delete
			mTree.Delete(num);
			break;
		case 'c':		//count
			mTree.TotalCount=0;
			mTree.GetCount(mTree.head,num);
			cout<<mTree.TotalCount<<endl;			
			break;
		}
	}


	return 0;
}
    int countRangeSum(vector<int>& nums, int lower, int upper) {
        Tree tree;
        tree.Insert(0);
        long long sum = 0;
        int res = 0;

        for (int n : nums) {
            sum += n;
            int lcnt = tree.LessThan(sum, lower);
            int hcnt = tree.LessThan(sum, upper + 1);
            res += (hcnt - lcnt);
            tree.Insert(sum);
        }

        return res;
    }
示例#5
0
void main()
{
	Tree t;
	int ch=0,x;
	while(ch!=6)
	{
		cout<<"\n\n----Tree----\n";
		cout<<"\n1.Inorder";
		cout<<"\n2.Preorder";
		cout<<"\n3.Postorder";
		cout<<"\n4.Insert";
		cout<<"\n5.Delete";
		cout<<"\n6.Exit";
		cout<<"\nEnter the choice :";
		cin>>ch;
		switch(ch)
		{
		case 1:
			cout<<"\nInorder  : ";
			t.Inorder();
			break;

		case 2:
			cout<<"\nPreorder :";
			t.Preorder();
			break;
		case 3:
			cout<<"\nPostorder:";
			t.Postorder();
			break;
		case 4:
			cout<<"\nEnter the data:";
			cin>>x;
			t.Insert(x);
			break;
		case 5:
			cout<<"\nEnter the data:";
			cin>>x;
			t.Delete(x);
			break;
		}
	}
	
	

}
int main()
{
	Tree obj;
	obj.Insert(8);
	obj.Insert(3);
	obj.Insert(1);
	obj.Insert(10);
	obj.Insert(6);
	obj.Insert(4);
	obj.Insert(7);
	obj.Insert(14);
	obj.Insert(13);
	obj.PostorderTraversal();
	cout << endl;
	cout << obj.TreePermutationCount(2);
	//cout << endl << obj.InternalPath();
	return 0;
}
示例#7
0
void main()
{
	Tree t;
	int data,iChoice=0;
	while(iChoice!=5)
	{
		cout<<"\n\t\t1.Insert";
		cout<<"\n\t\t2.Inorder";
		cout<<"\n\t\t3.Preorder";
		cout<<"\n\t\t4.Postorder";
		cout<<"\n\t\t5.Exit";
		cout<<"\nEnter your choice";
		cin>>iChoice;
		switch(iChoice)
		{
		case 1:
				cout<<"\nEnter data to push";
				cin>>data;
				t.Insert(data);
				break;
		case 2:
			t.Inorder();
			break;
		case 3:
			t.Preorder();
			break;
		case 4:
			t.Postorder();
			break;
		case 5:
			break;
		default:
			cout<<"\nInvalid choice";
		}
	}
}
示例#8
0
int main()
{
   Tree myTree;

 	bool inMenu = true;	// while the user is using the program this var is set to true and the menu keeps looping.
						// when the user wants to quit, it is set to false and the loop ends.
	char keyPressed;	// This var stores which menu selection the user picks.

	while ( inMenu )
	{
		cout<< endl << endl << endl;
		cout << "****************************************************" << endl;
		cout  <<"**  MENU:(press a character to select an option)  **" << endl;
 		cout << "****************************************************" << endl;
		cout<<"Q. [QUIT]     Quit."<<endl;
  		cout<<"D. [Display]  Display all values stored in the tree"<<endl;
 		cout<<"I. [Insert]   Insert an integer"<<endl;
		cout << endl;

		cout<<"M. [Maximum] Determine the maximum of all values stored in the tree" << endl;
		cout<<"A. [Average] Determine the average of all values stored in the tree" << endl;
		cout<<"H. [Height]  Determine the height of the tree" << endl;
		cout << "****************************************************" <<endl<< endl;

		cout<<"Your choice is: ";
		cin >> keyPressed ;

		int value;
		switch(keyPressed)
		{
			case 'M': case 'm'://Maximum
				cout << "[Maximum]:" << endl;
				cout << "Maximum value stored is:" << myTree.FindMaximum() << endl;
				break;

			case 'A': case 'a'://Average
				cout << "[Average]:" << endl;
				cout << "Average of all values stored is:" << myTree.FindAverage() << endl;
				break;

			case 'H': case 'h'://height
				cout << "[Height]:" << endl;
				cout << "Height of the tree is:" << myTree.FindHeight()<< endl;
				break;


			case 'Q': case 'q'://Quit
				cout << "[QUIT]:" << endl;
				inMenu = false;
				break;

			case 'D': case 'd':
				cout << "[Display]:" << endl;
				myTree.Display();
				break;

			case 'I': case 'i':
				cout << "[insert]:" << endl;
				cout << "Value to insert:";
				cin >> value;
				myTree.Insert(value);
				break;

			default:
				cout << "[?? UNKNOWN COMMAND]:" << endl;
				// Unrecognized key, do nothing
				break;
		}


	} // End of while loop

	return 0;
}
示例#9
0
#include <tree.cpp>
#include <catch.hpp>
#include <fstream>
#include <iostream>
using namespace std;

SCENARIO("Insert_int", "[add]"){
  Tree<int> tree;
  REQUIRE(tree.Insert(7));
  REQUIRE(tree.Insert(3));
  REQUIRE(tree.Insert(5));
  REQUIRE(tree.Search(3));
  REQUIRE(tree.Search(5));
  REQUIRE(tree.Search(7));
}

SCENARIO("Insert_char", "[add_c]"){
  Tree<char> tree;
  REQUIRE(tree.Insert(5));
  REQUIRE(tree.Insert(4));
  REQUIRE(tree.Insert(6));
  REQUIRE(tree.Search(4));
  REQUIRE(tree.Search(5));
  REQUIRE(tree.Search(6));
}

SCENARIO("Insert_double", "[add_d]"){
  Tree<double> tree;
  REQUIRE(tree.Insert(7.62));
  REQUIRE(tree.Insert(3.14));
  REQUIRE(tree.Insert(5.85));