Exemple #1
0
int main()
{
	BSTree T;
	int k;
	BSTree result;
	printf("建立二叉排序树,请输入序列, 以-1结束:\n");
    CreateBST(&T);
	printf("先序遍历输出序列为:");
	PreOrder(T);
/*
	printf("\n请输入要查找的元素:");
	fflush(stdin);
	scanf("%d",&k);
	result = SearchBST(T,k);
	if (result != NULL)
		printf("要查找的元素为%d\n",result->key);
	else
		printf("未找到!\n");
	result = DelBST(T,k);
	printf("删除元素%d后的排序树先序遍历为\n",k);
*/
	PreOrder(T);
	MakeDot(T);
	return 0;
}
Exemple #2
0
/* 先序遍历二叉链表 */
void PreOrder(BiTree T)
{
	if(NULL == T)	return;
	printf("%c  ", T->data);
	PreOrder(T->lchild);
	PreOrder(T->rchild);
}
Exemple #3
0
void PostOrder(TreeNode *T) {
	if (T != NULL) {
		PreOrder(T->left);
		PreOrder(T->right);
		printf("%d", T->data);
	}
}
//前序遍历二叉树
PreOrder(BiTree T,int level){
	if(T){
		visit(T->data,level);
		PreOrder(T->lchild,level+1);
		PreOrder(T->rchild,level+1);
	}
} 
void testProblems() {
	BinTree r, s;
	freopen("input/BinTree1.txt", "r", stdin);
	r = Create_BinTree();
	s = Create_BinTree();
	printf("%d\n", IsSubTree(r, s));
	freopen("input/BinTree2.txt", "r", stdin);
	int res = 0;
	r = Create_BinTree();
	MaxPathSum(r, res);
	printf("%d\n", res);
	printf("%d\n", MinDepth(r));
	printf("%d\n", MaxDepth(r));
	printf("%d\n", IsAvlTree(r));
	printf("%d\n", IsSymmetricTree(r));
	freopen("input/BinTree4.txt", "r", stdin);
	r = Create_BinTree();
	PreOrder(r);
	printf("\n");
	MirrorTree(r);
	PreOrder(r);
	printf("\n");
	freopen("input/BinTree3.txt", "r", stdin);
	r = Create_BinTree();
	BinNode *p = LastCommonParent(r, 10, 13);
	if (p) {
		printf("%d\n", ToInt(p));
	}
    int node = findSucc(r,6);
    printf("%d\n", node);
}
Exemple #6
0
void PreOrder(BinTree tree){
	if (tree==NULL)
		return;
	printf("%d ",tree->m_value);
	PreOrder(tree->pLeft);
	PreOrder(tree->pRight);
}
Exemple #7
0
// 前序遍历递归 
void PreOrder(pBTNode pRoot)
{
	if (pRoot) {
		printf("%c ", pRoot->_data);
		PreOrder(pRoot->_pLeft);
		PreOrder(pRoot->_pRight);
	}
}
Exemple #8
0
void PreOrder(NodeTree* ApT) {

    if(ApT != NULL) {
        Visit(ApT->info);
        PreOrder(ApT->left);
        PreOrder(ApT->right);
    }
}
Exemple #9
0
void PreOrder(BinaryTreeNode<T> *t)
{// Preorder traversal of *t.
   if (t) {
      Visit(t);                 // visit tree root
      PreOrder(t->LeftChild);   // do left subtree
      PreOrder(t->RightChild);  // do right subtree
      }
}
Exemple #10
0
void Node::PreOrder(Node *a) {
	if (a != NULL)
	{
		std::cout << a->key << " ";
		PreOrder(a->left);
		PreOrder(a->right);
	}
};
/*
 *后序
 * */
void PostOrder(BiTree t)
{
	if(t!=NULL){
		PreOrder((BiTree)t->lchild);
		PreOrder((BiTree)t->rchild);
		visit(t);
	}
}
Exemple #12
0
void PreOrder(treeNode* root)   // 전위 순회
{
  if(root!=NULL) {
    printf("%c  ",root->data);  // Data Read
    PreOrder(root->left);   // Left Node Move
    PreOrder(root->right);    // Right Node Move
  }
}
void BinarySearchTree<Key, Value>::PreOrder (BSTnode* subtree, Visit& visitor)
{
    if (subtree!=NULL)
    {
        visitor(subtree->m_value);
        PreOrder(subtree->m_left, visitor);
        PreOrder(subtree->m_right, visitor);
    }
}
Exemple #14
0
void  PreOrder(BitTree root) /*先序遍历二叉树, root为指向二叉树(或某一子树)根结点的指针*/
{
 if (root!=NULL)
 {
  Visit(root ->data);  /*访问根结点*/
  PreOrder(root ->LChild);  /*先序遍历左子树*/
  PreOrder(root ->RChild);  /*先序遍历右子树*/
 }
}
void PreOrder(BiTree *bt)
{
	if (bt != NULL)
	{
		printf("%c", bt->data);
		PreOrder(bt->lchild);
		PreOrder(bt->rchild);
	}
}
void PreOrder(Tree Root)		//PreOrder Traversal
{
	if (Root !=NULL)
	{
		printf("%c",Root->data);
		PreOrder(Root->Left);
		PreOrder(Root->Right);
	}
}
Exemple #17
0
void CTree::PreOrder(CTreeNode *lpRoot)
{
    if (lpRoot != NULL)
    {
        cout << lpRoot->m_data << " ";
        PreOrder(lpRoot->m_lpLeft);
        PreOrder(lpRoot->m_lpRight);
    }
}
//先序遍历二叉树
void PreOrder(BinaryTree *B)
{
    if(B)
    {
        printf("%c\t",B->data);
        PreOrder(B->LChild);
        PreOrder(B->RChild);
    }
}
void  BinaryST<T>::PreOrder(BSTNode<T> *ptr)
{
	if (ptr == NULL)
		return;

	cout << ptr->data.key << "(" << ptr->data.val << ")" << " ";
	PreOrder(ptr->lC);
	PreOrder(ptr->rC);
}
Exemple #20
0
void PreOrder (BiTree * root)
{
	if (root != NULL)
	{
		printf("%c \n", root->data);
		PreOrder(root->Lchild);
		PreOrder(root->Rchild);
	}
}
Exemple #21
0
/**
 *  Preorder Traversal of a bt
 *  and Inorder / Postorder Traversal / levelorder
 *
 *  @param bt pointer of bt root
 */
void PreOrder(BTreeNode *bt){
    if (bt != NULL) {
        printf("%c", bt->data);
        PreOrder(bt->lchild);
        PreOrder(bt->rchild);
        
    }
    return;
}
Exemple #22
0
//先序遍历
void PreOrder(BiTree T)
{
     if(T!=NULL)
     {
         Visit(T);
         PreOrder(T->lchild);
         PreOrder(T->rchild);
     }
}
Exemple #23
0
void PreOrder(Node *node, void (*visit)(Node *node))
{
    if (node)
    {
//        printf("Now: %d\n", node);
        visit(node);
        PreOrder(node->left, visit);
        PreOrder(node->right, visit);
    }
}
 TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
     if(root==NULL||p==NULL||q==NULL)
         return NULL;
     TreeNode* pNode = root;
     int plen = 0, qlen = 0;
     PreOrder(pNode, p, stap, &plen);
     pNode = root;
     PreOrder(pNode, q, staq, &qlen);
     return CommonNode(stap, staq, plen, qlen);
 }
Exemple #25
0
void  PreOrder(BSTree root) 
/*先序遍历二叉树, root为指向二叉树根结点的指针*/
{
	if (root!=NULL)
	{
		printf("%d  ",root->key);  /*输出结点*/
		PreOrder(root->lchild);  /*先序遍历左子树*/
		PreOrder(root->rchild);  /*先序遍历右子树*/
	}
}
Exemple #26
0
void PreOrder(TreeNode* tree, 
     QueType& preQue)
// Post: preQue contains the tree items in preorder.
{
  if (tree != NULL)
  {
    preQue.Enqueue(tree->info);
    PreOrder(tree->left, preQue);
    PreOrder(tree->right, preQue);
  }
}
void PreOrder(struct node *head)
{
    struct node *pr;
    pr=head;
    if (head!=NULL)
    {
        printf("%c",pr->data);
        PreOrder(pr->lchild);
        PreOrder(pr->rchild);
    }
}
void  BinaryST<T>::PreOrder(BSTNode<T> *ptr)  {
	Item item;
	if(ptr == NULL)
		return;
	else{
		item = ptr->data;
		cout << item.key << "(" << item.val << ") ";
	}
	PreOrder(ptr->lC);
	PreOrder(ptr->rC);
}
Exemple #29
0
void PreOrder(bitree_t *root)
{
	if (NULL == root) return;
	
	printf("%c ", root->data);
	
	PreOrder(root->lchild);
	
	PreOrder(root->rchild);

	return;
}
void AVLTree::PostOrder(TreeNode *node, QAnimationGroup *group)
{
    if (node == NULL) return;
    group->addAnimation(node->getTurnRedAnim());
    TreePath *path = new TreePath(node, node->Lson, view);
    group->addAnimation(path->getToSonAnim());
    PreOrder(node->Lson, group);
    group->addAnimation(path->getToParentAnim());
    path = new TreePath(node, node->Rson, view);
    group->addAnimation(path->getToSonAnim());
    PreOrder(node->Rson, group);
    group->addAnimation(path->getToParentAnim());
    group->addAnimation(node->getPopAnim());
    group->addAnimation(node->getTurnBlackAnim());
}