把二元查找树转变成排序的双向链表
2014-08-25 23:04
288 查看
#include using namespace std; //创建树结构 typedef struct node { int data; struct node *ltree,*rtree; }*BitTree,bitTree; //创建树函数 void creat_tree(BitTree &tree); void mid_travel(BitTree tree,BitTree &bsTree); int main() { BitTree pTree; BitTree bsTree=NULL; cout<<"please input data of the tree:"<<endl; creat_tree(pTree); mid_travel(pTree,bsTree); //输出节点信息 while (bsTree) { cout<data<<" "; bsTree=bsTree->ltree; } system("pause"); return 0; } void creat_tree(BitTree &tree) { int data; cin>>data; //退出条件 if (data==0) { tree=NULL; return; } else { tree=new bitTree; if (tree==NULL) { exit(0); } tree->data=data; //创建左子树 creat_tree(tree->ltree); //创建右子树 creat_tree(tree->rtree); } } //中序访问 void mid_travel(BitTree tree,BitTree &bsTree) { if (tree==NULL) { return ; } //记录当前节点 BitTree pro_node=tree; if (tree->ltree!=NULL) { mid_travel(tree->ltree,bsTree); } //通过bstree与pro_node实现双联表的转换 pro_node->ltree=bsTree; if (bsTree!=NULL) { bsTree->rtree=pro_node; } bsTree=pro_node; //访问右分支 if (tree->rtree!=NULL) { mid_travel(pro_node->rtree,bsTree); } return ; }
相关文章推荐
- 转:把二元查找树转变成排序的双向链表
- 把二元查找树转变成排序的双向链表
- 程序员面试题精选100题(01)-把二元查找树转变成排序的双向链表
- 把二元查找树转变成排序的双向链表[数据结构]
- 第一题 把二元查找树转变成排序的双向链表
- (微软100题)把二元查找树转变成排序的双向链表
- 把二元查找树转变成排序的双向链表--算法001
- 把二元查找树转变成排序的双向链表
- 把二元查找树转变成排序的双向链表
- 把二元查找树转变成排序的双向链表
- 1.二元查找树转变成排序的双向链表
- 把二元查找树转变成排序的双向链表,要求输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表
- 把二元查找树转变成排序的双向链表
- 把二元查找树转变成排序的双向链表
- 把二元查找树转变成排序的双向链表
- [面试中的算法]把二元查找树转变成排序的双向链表
- 把二元查找树转变成排序的双向链表
- 二元查找树转变成排序的双向链表
- 二元查找树转变成排序的双向链表
- 把二元查找树转变成排序的双向链表