Esempio n. 1
0
void printTreeInOrder(node *root) {
	if (root == NULL)
		return;
	printTreeInOrder(root->left);
	printf("%d ",root->data);
	printTreeInOrder(root->right);
}
Esempio n. 2
0
void main() {
	
	node* swapNode1 = NULL;
	node* swapNode2 = NULL;
	node* prev = NULL;

	// case when 2 nodes are adjacent
	node* root1 = newNode(7);
	root1->left = newNode(5);
	root1->right = newNode(20);

	root1->left->left = newNode(3);
	root1->left->right = newNode(8);
	root1->right->left = newNode(15);
	root1->right->left->left = newNode(10);
	
	root1->right->right = newNode(25);


	swapNode(root1,&prev,&swapNode1,&swapNode2);
	printTreeInOrder(root1);
	printf("\n");
	
	swapValue(swapNode1,swapNode2);
	printTreeInOrder(root1);
	printf("\n");
	
	
	//printTreePreOrder(root2);
	//printf("\n");
	
}
	void Bin_STree::printTreeInOrder(const Node* nodePtr)
	{
		if(nodePtr != NULL)
		{
			printTreeInOrder( nodePtr->left() );
 			//printf("|%21s |%18d |",nodePtr->getWord(),nodePtr->getWordCount());
 			std::cout << "|" << std::setw(21) << nodePtr->getWord();
 			std::cout << " |" << std::setw(19) << nodePtr->getWordCount() << " | ";
			for( int i = 0; i < nodePtr->getLineNums().size(); ++i)
			{
				if(i < nodePtr->getLineNums().size() - 1 )
					std::cout << nodePtr->getLineNums()[i] << ", ";
				else
					std::cout << nodePtr->getLineNums()[i];
				if(i != 0)
				{
					if( i % 10 == 0)
					{
						if( i != nodePtr->getLineNums().size() - 1)
						{
							std::cout << std::endl << "|" << std::setw(22) << " ";
							std::cout << "|" << std::setw(22) << " | ";
						}
					}
				}

			}
			std::cout << std::endl;
			printTreeInOrder( nodePtr->right() );
		}
	}