您的位置:首页 > 其它

把一个有序整数数组放到二叉树

2013-10-16 21:57 393 查看
题目:把一个有序整数数组放到二叉树。

答:

#include "stdafx.h"
#include <iostream>

using namespace std;

struct TreeNode
{
int m_nValue;
TreeNode *m_pLeft;
TreeNode *m_pRight;
};

//把一个有序整数数组放到二叉树
void RecurCreateTree(int *p, int length, TreeNode *&pHead)
{
if (length > 0)
{
pHead = new TreeNode;
int mid = length/2;
pHead->m_nValue = p[mid];
pHead->m_pLeft = NULL;
pHead->m_pRight = NULL;
RecurCreateTree(p, mid, pHead->m_pLeft);
RecurCreateTree(p + mid + 1, length - mid - 1, pHead->m_pRight);;
}
else
{
pHead = NULL;
}

}

//中序递归遍历
void MidRecurTraversal(TreeNode* pHead)
{
if (NULL != pHead)
{
MidRecurTraversal(pHead->m_pLeft);
cout<<pHead->m_nValue<<"  ";
MidRecurTraversal(pHead->m_pRight);
}
}

int _tmain(int argc, _TCHAR* argv[])
{
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ,11, 12};
TreeNode *pHead = NULL;
RecurCreateTree(arr, sizeof(arr)/sizeof(arr[0]), pHead);
MidRecurTraversal(pHead);
cout<<endl;
return 0;
}


运行界面如下:



本文出自:/article/5013149.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: