C語言 二叉查詢樹相關演算法

2021-07-03 04:45:09 字數 1113 閱讀 6288

#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...