#include#include#includeusing namespace std;
typedef struct treenodetreenode;
//二叉查詢樹中增加節點
treenode * createtree(treenode *proot, int val)elseelse
} return proot;
}//建立乙個二叉樹查詢樹
treenode * create(treenode *proot)
return proot;
}//中序遍歷二叉查詢樹
void tarversebst(treenode *proot)
}//求二叉查詢樹的深度
int binarytreedepth(treenode *proot)
int left = binarytreedepth(proot->pleft);
int right = binarytreedepth(proot->pright);
return (left > right) ? left+1 : right+1;
}//廣度優先遍歷
void bfs(treenode *proot)
dequequeue;
queue.push_back(proot);
while(!queue.empty())
if(pnode->pright != null) }}
//深度優先遍歷
void dfs(treenode *proot)
stacks;
s.push(proot);
while(!s.empty())
if(pnode->pleft != null) }}
//求二叉樹的映象樹
treenode *mirrorbst(treenode *proot)
dequequeue;
queue.push_back(proot);
while(!queue.empty())
if(pnode->pright != null)
} return proot;
}int main()
C語言 二叉查詢樹映象
題目 輸入一顆二元查詢樹,將該樹轉換為它的映象,即在轉換後的二元查詢樹中,左子樹的結點都大於右子樹的結點。用遞迴和迴圈兩種方法完成樹的映象轉換。例如輸入 8 610 57911 輸出 8 10 6 119 75 typedef struct bstreenodebst void mirrorbst ...
演算法 二叉查詢樹
二叉查詢樹 binary search tree 也稱有序二叉樹 ordered binary tree 排序二叉樹 sorted binary tree 是指一棵空樹或者具有下列性質的二叉樹 1.若任意節點的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 2.若任意節點的右子樹不空,則右子...
二叉查詢樹演算法
判斷二插查詢樹是否含有 指定結點 param x return public boolean contains t x private boolean contains t x binarynode t int compareresult x.compareto t.element if compa...