遍历树,求出最大值和最小值。上程序:
//非递归
struct Tree
{
int data;
Tree * lChild;
Tree * rChild;
};
template <typename T1, typename T2> T1 getMaxfabs(T2 T)
{
T1 min = T->data;
T1 max = T->data;
T2 pNode = T;
std::stack<T2> S;
while (pNode != NULL || !S.empty())
{
while (pNode != NULL)
{
S.push(pNode);
pNode = pNode->lChild;
if (min > pNode->data)
min = pNode->data;
if (max < pNode->data)
max = pNode->data;
}
if (!S.empty())
{
pNode = S.top();
pNode = pNode->rChild;
S.pop();
}
}
return (max-min);
}
//递归比较简单,不再赘述