sppk.net
当前位置:首页 >> 打印二叉树 >>

打印二叉树

class node{public: char ch; struct node *l,*r; node(char c,node *lchild,node *rchild):ch(c),l(lchild),r(rchild){}};void space(int n){ for(int i=0; i

//先序遍历#include using namespace std;struct TreeNode{int val;TreeNode *left, *right;};//先序遍历void PreorderTraversal(TreeNode* root) {if (!root) return;cout val left) PreorderTraversal(root->left);if (root->right)PreorderTr...

给一个二叉树,把所有的路径都打印出来。 比如,对于下面这个二叉树,它所有的路径为: 8 -> 3 -> 1 8 -> 2 -> 6 -> 4 8 -> 3 -> 6 -> 7 8 -> 10 -> 14 -> 13 思路: 从根节点开始,把自己的值放在一个数组里,然后把这个数组传给它的子节点,子...

你指的是层序打印吗? 二叉树的节点层序打印要使用“队列” 代码为: void Order(BinTreeNode *root) //BinTreeNode是二叉树结点,root为二叉树的根结点 { Queue Q; //定义一个二叉树结点指针类型的队列 BinTreeNode *p=root; //将根结点传给一个P...

#include using namespace std; class tree { public: tree(){lchild=NULL;rchild=NULL;} char data; class tree *lchild; class tree *rchild; }; void build(tree *&t)//先序建树 { char c; cin>>c; if(c=='#') { t=NULL; } else { t=new tree...

void Print(BinTree *r)//r 为根结点指针 { if (r != NULL) { if (r->lchild == NULL && r->rchild == NULL) printf("%c", r->data); Print(r->lchild); Print(r->rchild); } }

这句: for(int i=0;i

你结构体定义的分明是链式存储结构,何来数组存储一说

//只有先序遍历,其它的可以在这个基础上改。 //如果有不懂的可以hi我 #include #include typedef struct tnode { char data; struct tnode *lchild; struct tnode *rchild; }tnode; tnode *Tree_creat(tnode *t) { char ch; ch=getchar(); if(c...

对于k=1,则k为根结点,无父母结点。 对于k>1,可分两种情况讨论。 1.设完全二叉树第j层的第一个结点的编号为i,则i=2的j-1次方。其左孩子必为第j+1层的第一个结点。其编号为2的j次方,这和2*i相等。右孩子为j+1层的第二个结点,结点编号为2*i+1...

网站首页 | 网站地图
All rights reserved Powered by www.sppk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com