Пример #1
0
//中序遍历树
void InOrderTraversal(AvlTree tree) {
	if (tree == NULL)
		return;
	InOrderTraversal(tree->left);
	VisitElement(tree);
	InOrderTraversal(tree->right);
}
Пример #2
0
void InOrderTraversal(const Node* root, std::vector<int>& buff) {
    if (root != nullptr) {
        InOrderTraversal(root->left, buff);
        buff.push_back(root->value);
        InOrderTraversal(root->right, buff);
    }
}
Пример #3
0
void InOrderTraversal(TNode* root){
    if(!root){
    return;
    }
InOrderTraversal(root->left);
printf("%c <-->  ",root->data);
InOrderTraversal(root->right);
}
Пример #4
0
void InOrderTraversal(TreeNode * root)
{
    if(root) {
        InOrderTraversal(root->Left);
        std::cout << " " << root->Key<< " " ;
        InOrderTraversal(root->Right);
    }
}
void InOrderTraversal(struct TreeNode *root, struct BSTIterator* i)
{
	if (root == NULL)
		return;

	InOrderTraversal(root -> left, i);
	Push(root -> val, i);
	InOrderTraversal(root -> right, i);
}
Пример #6
0
//This function traverses the tree inorderly and prints the tree to a file and also to the screen
void InOrderTraversal( TreeNode *rootNode){
	if( rootNode != NULL){
		FILE *fp;
		fp = fopen("shakespeare-word","a");

		InOrderTraversal(rootNode->left);
		fprintf(fp,"\t%-20s\t%-10d\n", rootNode->word, rootNode->count );
		printf("\t%-20s\t%-10d\n", rootNode->word, rootNode->count );
		InOrderTraversal( rootNode->right);
		fclose(fp);
		free;
	}
}
Пример #7
0
void BTree::Print(OrderType Order) const
{
    if(Order ==InOrder)
    {
        std::cout << " InOrder" << std::endl;
        InOrderTraversal(root);
        std::cout << std::endl;
    }
    else if(Order == PostOrder) {
        std::cout << " PostOrder" << std::endl;
        PostOrderTraversal(root);
        std::cout << std::endl;

    }
    else if(Order == PreOrder) {
        std::cout << " PreOrder" << std::endl;
        PreOrderTraversal(root);
        std::cout << std::endl;

    }
    else if(Order == LevelOrder) {
        std::cout << " LevelOrder" << std::endl;
        LevelOrderTraversal(root);
        std::cout << std::endl;
    }
}
struct BSTIterator *bstIteratorCreate(struct TreeNode *root) {
	struct BSTIterator* i = malloc(sizeof(struct BSTIterator));
	i -> next = malloc(SIZE * sizeof(int));
	i -> size = 0;
	i -> capacity = SIZE;
	i -> front = 0;

	InOrderTraversal(root, i);
	return i;
}
Пример #9
0
void TestCreateTree(const std::vector<int>& testVector) {
    Node* tree = CreateTree(testVector.begin(), testVector.end());
    std::vector<int> traversedVector;
    InOrderTraversal(tree, traversedVector);
    CHECK_EQUAL(traversedVector, testVector);
    // CHECK_EQUAL(CheckBalanced(tree), true);
    int minimalHeight = testVector.size() == 0?
                        0 : floor(std::log2(testVector.size())) + 1;
    CHECK_EQUAL(MaxDepth(tree), minimalHeight);
    DeleteTree(tree);
}
Пример #10
0
VOID InOrderTraversal(ULONG_PTR pNode)
{
	HRESULT hRes=S_OK;
    PULONG pOffset=NULL;
    BYTE* pBuffer=NULL;
    ULONG ulData=0;
    ULONG ulLeft=0;
    ULONG ulRight=0;

    if(CheckControlC()==TRUE)
    {
        dprintf ("Control C hit, canceling command\n" );
        return;
    }

    if(!pNode)
    {
        return;
    }

    if(FAILED(hRes=GetNodeValues(pNode, &ulData, &ulLeft, &ulRight)))
    {
		return;
    }

	if(ulLeft)
	{
		InOrderTraversal(ulLeft);
		delete[] pBuffer;			
	}

	PrintNode(ulLeft, ulData, ulRight);

	if(ulRight)
	{
		InOrderTraversal(ulRight);
		delete[] pBuffer;
	}			
}
Пример #11
0
int main(){
char exp[20];
printf("\nEnter the expression : ");
scanf("%s",exp);
TNode* root=CreateExpressionTree(exp);
printf("\nExpression Tree Created\n");
getch();

printf("\nPress enter to do inorder traversal... ");
getch();
InOrderTraversal(root);
getch();
return 0;
}
Пример #12
0
HRESULT CALLBACK dumptree(PDEBUG_CLIENT pClient, PCSTR szArgs)
{
    HRESULT hRes=S_OK;

    ULONG_PTR pAddress=(ULONG_PTR) GetExpression(szArgs);
    if(!pAddress)
    {
        dprintf("Invalid head pointer address specified: %s\n", szArgs);
        return E_FAIL;
    }

    InOrderTraversal(pAddress);
    return hRes;
}
Пример #13
0
int main()
{
	TBSTree tree = NULL;
	tree = Insert(4, tree);
	tree = Insert(2, tree);
	tree = Insert(1, tree);
	tree = Insert(6, tree);
	tree = Insert(5, tree);
	tree = Insert(7, tree);

	puts("Address\tElement");
	InOrderTraversal(tree);

	puts("I will delete 5, 6, 2, 4");	
	printf("positon\telem\tleft\tright\n");

	TBSTree p = Find(5, tree);
	printf("%p\t%d\t%p\t%p\n", p, p->elem, p->left, p->right);	

	tree = Delete(5, NULL, tree);
	p = Find(6, tree);
	printf("%p\t%d\t%p\t%p\n", p, p->elem, p->left, p->right);	
	
	tree = Delete(6, NULL, tree);
	p = Find(7, tree);
	printf("%p\t%d\t%p\t%p\n", p, p->elem, p->left, p->right);	

	tree = Delete(2, NULL, tree);
	p = Find(1, tree);
	printf("%p\t%d\t%p\t%p\n", p, p->elem, p->left, p->right);	

	tree = Delete(4, NULL, tree);
	p = Find(7, tree);
	printf("%p\t%d\t%p\t%p\n", p, p->elem, p->left, p->right);	



	exit(EXIT_SUCCESS);
}
Пример #14
0
int main(void){
	
	//This declaration initialises the output file discarding all its content if it exist
	FILE *fp;	
	fp = fopen("shakespeare-word","a");
	TreeNode *root;
	char word[50];
	int ch;

	root = NULL;
	//Reads input and store in binary tree until end of file is read
	while( ( ch = getc(stdin)) != EOF){
		
		ungetc(ch, stdin);
		scanf("%s",word);
		NewNode( &root, word);
	}

	InOrderTraversal(root);

	fclose(fp);
	free;
	return 0;
}