二叉树
文章平均质量分 61
huohaifeng
这个作者很懒,什么都没留下…
展开
-
在二元树中找出和为某一值的所有路径
//该代码没有经过特例测试#include using namespace std;struct Stack{ int base[ 100 ]; int *top;};struct BTNode{ int value; struct BTNode *left; struct BTNode *right;};void addNode( BTNode *&T , in原创 2013-09-13 12:25:58 · 186 阅读 · 0 评论 -
二叉树转化成双向链表
//思路:中序遍历访问结点的顺序就是二叉链表从前往后安置顺序//两个指针head指向链表头,curr指向当前已经正确安放的链表节点//即head和curr中间的部分已经访问并且成为双向链表//一直访问,一直更新curr指向节点的lchild和rchild指针#includeusing namespace std;typedef struct int_BT_Node{ int val原创 2013-09-13 10:08:27 · 325 阅读 · 0 评论 -
怎样从顶部开始逐层打印二叉树结点数据
#include#includeusing namespace std;typedef struct node { char data; struct node *lchild; struct node *rchild;}bt_node , *bt_pointer;//创建一棵二叉树void init_tree( bt_pointer &T ){ char ch; cin原创 2013-09-12 20:12:20 · 202 阅读 · 0 评论 -
把一个有序整数数组放到二叉树中
#includeusing namespace std;typedef struct node{ int value; struct node *lchild; struct node *rchild;}bt_Node , * bt_pointer;void list_to_tree( int list[] , int start , int end , bt_pointer &原创 2013-09-12 20:44:05 · 251 阅读 · 0 评论 -
判断一个序列是否是BST的后序遍历结果,假设没有重复元素
#includeusing namespace std;bool recur( int a[] , int start , int end ) { if( start <= end ) { int mid; int i = end - 1; bool flag = true; //从左向右,找到[start,end)区间第一个比a[end]大的元素 for( i = s原创 2013-09-13 20:18:50 · 204 阅读 · 0 评论 -
求二叉树的节点的最大距离
#include using namespace std;typedef struct char_BT_Node{ char value; struct char_BT_Node *lchild; struct char_BT_Node *rchild;} char_BT_Node , *char_BT_Pointer;int max_dis;void Create_char原创 2013-09-13 21:13:19 · 189 阅读 · 0 评论 -
镜像一棵BST
/*题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和非递归两种方法完成树的镜像转换。*///感觉随便一种遍历方式都可以做到#include#includetypedef struct node { int value; struct node * lchild , *rchild;} BT_node , *B原创 2013-09-14 21:00:55 · 194 阅读 · 0 评论 -
中序、先序、后序的互转
/************************************************************************//* 中序先序转后序 *//********************************************************原创 2013-09-17 21:20:47 · 217 阅读 · 0 评论 -
树的遍历
//创建树、遍历树、线索树/*typedef struct Node { char value; struct Node * lchild; struct Node * rchild;}BT_Node , *BT_Pointer;void create_BT( BT_Pointer & T ) { char c; c = getchar(); if( c == '^' )原创 2013-10-08 17:15:04 · 176 阅读 · 0 评论