二元查找树转变成排序的双向链表(树)
2016-11-23 17:22
239 查看
/* Name: 二元查找树转变成排序的双向链表(树) Copyright: Author: yifi Date: 23/11/16 17:06 Description: */ #include <iostream> using namespace std; typedef struct _BSTreeNode{ int m_Value; _BSTreeNode* pLeft; _BSTreeNode* pRight; }BSTreeNode,*pBSTreeNode; void addBSTreeNode(BSTreeNode *&pCurrent,int value); void inOrderBSTree(BSTreeNode* pBSTree); void convertToDoubleList(BSTreeNode* pCurrent); BSTreeNode *pHead=NULL;//指向循环队列头结点 BSTreeNode *pIndex=NULL;//指向前一个结点 int main() { BSTreeNode *pRoot=NULL; addBSTreeNode(pRoot,10); addBSTreeNode(pRoot,6); addBSTreeNode(pRoot,14); addBSTreeNode(pRoot,4); addBSTreeNode(pRoot,8); addBSTreeNode(pRoot,12); addBSTreeNode(pRoot,16); inOrderBSTree(pRoot); return 0; } void addBSTreeNode(BSTreeNode *&pCurrent,int value) { if (pCurrent == NULL) { BSTreeNode* pTemp = new BSTreeNode(); pTemp->m_Value = value; pTemp->pLeft = NULL; pTemp->pRight = NULL; pCurrent = pTemp; } else if (pCurrent->m_Value < value) { addBSTreeNode(pCurrent->pRight,value); } else if (pCurrent->m_Value > value) { addBSTreeNode(pCurrent->pLeft,value); } else { cout << "Node Repeated" << endl; } } void inOrderBSTree(BSTreeNode* pBSTree) { if (pBSTree == NULL) { return ; } if (pBSTree->pLeft != NULL) { inOrderBSTree(pBSTree->pLeft); } convertToDoubleList(pBSTree); if (pBSTree->pRight != NULL) { inOrderBSTree(pBSTree->pRight); } } void convertToDoubleList(BSTreeNode* pCurrent) { pCurrent->pLeft = pIndex; if (pIndex == NULL) { pHead = pCurrent; } else { pIndex->pRight = pCurrent; } pIndex = pCurrent; cout << pCurrent->m_Value << " "; }
相关文章推荐
- 把二元查找树转变成排序的双向链表
- 【编程题目】把二元查找树转变成排序的双向链表(树)
- 微软面试100之1 把二元查找树转变成排序的双向链表(树)
- 把二元查找树转变成排序的双向链表(树)
- 程序员面试题精选100题(01)-把二元查找树转变成排序的双向链表—python实现
- 把二元查找树转变成排序的双向链表
- 把二元查找树转变成排序的双向链表(树)
- No1、把二元查找树转变成排序的双向链表(树)
- 算法题22 把二元查找树转变成排序的双向链表(中序遍历)
- 《程序员面试题精选》01.二元查找树转变成排序的双向链表
- 把二元查找树转变成排序的双向链表(微软面试题)
- 把二元查找树转变成排序的双向链表(微软面试)
- 【微软100题】001把二元查找树转变成排序的双向链表(树)
- 把二元查找树转变成排序的双向链表(树)
- 把二元查找树转变成排序的双向链表(JULY微软面试100题系列第一题)的算法思考
- 剑指offer系列-T27把二元查找树转变成排序的双向链表
- 1. 微软面试题:把二元查找树转变成排序的双向链表(树)
- 把二元查找树转变成排序的双向链表
- 把二元查找树转变成排序的双向链表(中序遍历)
- 面试题系列-----数据结构(把二元查找树转变成排序的双向链表(树))