c++-int createBiTree( BiTree &r)这里是什么意思???

问题描述

int createBiTree( BiTree &r)这里是什么意思???
结构体定义不是用BiNode来定义的吗?为什么它能用BiTree来定义??
typedef struct BiNode{
string data;
struct BiNode *lchild*rchild;
}BiTNode*BiTree;
string temp;
int flag=0;
int createBiTree( BiTree &r){
flag=0;
cin>>temp;
if(temp.length()==1 && temp[0]=='#') r=NULL ;
else{
flag=1;
}

解决方案

BitTree被typedef定义为指向结构体的指针类型。

解决方案二:
你的typedef同时把这个结构定义成binode bitree了(也就是二叉树用二叉树的根节点表示)

解决方案三:
定义结构体的指针~~~~~

解决方案四:
r是引用型参数,代表可以在函数里它的值可以被修改

时间: 2024-10-30 05:30:25

c++-int createBiTree( BiTree &r)这里是什么意思???的相关文章

[算法系列之二]二叉树各种遍历

[简介] 树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用. 二叉树是每个结点最多有两个子树的有序树.通常子树的根被称作"左子树"(left subtree)和"右子树"(right subtree).二叉树常被用作二叉查找树和二叉堆或是二叉排序树.二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒.二叉树的第i层至多有2的 i -1次方个结点:深度为k的二叉树至多有2^(k) -1个结点:对任何一棵二叉树T,

求大神看看,C语言二叉树非递归遍历问题 ,最后输出正确,然后在程序崩溃

问题描述 求大神看看,C语言二叉树非递归遍历问题 ,最后输出正确,然后在程序崩溃 #include #include #include typedef struct TNode { char date; struct TNode *lchild,*rchild; }TNode,*BiTree; typedef struct { BiTree top; BiTree *base; int stacksize; }Stack; int createBiTree(BiTree &S){ char ch

【编程练习】复习一下树的遍历

深度有限遍历记录层数:增加一个level //深度优先遍历 void depthFirstSearch(Tree root){ stack<pair<int, Node *> > nodeStack; //使用C++的STL标准模板库 nodeStack.push(make_pair(0, root)); Node *node; while(!nodeStack.empty()){ node = nodeStack.top().second; int level = nodeSta

数据结构算法-关于二叉树的创建问题

问题描述 关于二叉树的创建问题 我想在主函数中先创建一个二叉树,然后再遍历.但我的程序调用CreateBiTree输入完要输入的数之后,还是一直在等待输入,无法停止.以致无法执行到后面的遍历二叉树函数.望高手给解答下! #include #include #include struct?BiTree { int?data; struct?BiTree?*lchild; struct?BiTree?*rchild; }; int?CreateBiTree(BiTree?*t) {??? ?????

[LeetCode]104.Maximum Depth of Binary Tree

[题目] Maximum Depth of Binary Tree  Total Accepted: 5260 Total Submissions: 11532My Submissions Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf n

二叉树先根(先序)遍历的改进_C 语言

二叉树的特点:每个结点的度最大不能超过2,并且左右子树不能颠倒 二叉树的存储结构:下面采用链式存储进行阐述,堆排序算法(快速排序改进)采用的顺序存储结构的二叉树,先看如下结构体的存储方式 顺序存储: 复制代码 代码如下: /*二叉树的顺序存储*/#define  MAX_TREE_SIZE 100typedef  TElemType  SqBiTree[MAX_TREE_SIZE]; 链式存储: 复制代码 代码如下: /*二叉树的链式存储*/typedef struct BiTNode{ TEl

【android相关】【问题解决】R.java文件丢失

在进行android开发过程中,有时候,我们会遇到gen文件中R.java丢失的现象.重新build,或者clean工程,close并重新打开Project,但有时也没解决. 这可能是由于不小心把xml文件写错了,或者在编辑xml或者其他文件时候点击了run,或者clear过项目等...,反正,你会发现gen下面的R.java的文件找不到了. 其实,只要xml文件有问题,系统就不会给自动生成R.java文件,因为系统需要参照每个xml里的数据来生成R.java. 当然,如果项目较大,而layou

c语言-求解C程序问题,f(r)后第二个printf结果为何是3,3,3呢?

问题描述 求解C程序问题,f(r)后第二个printf结果为何是3,3,3呢? #include int k=7,m=5void f(int **s){ int t=&k; _ _s=&t; _ _*s=&m; _ _printf("%d,%d,%d,",k,*t,*s);} main(){ int i=3,*p=&i,**r=&p; f(r); printf("%d,%d,%dn",i,*p,**r);} /*VC++程序运

c语言 二叉树-CreateBiTree函数参数为什么把引用符号去掉 就不能运行啊?*&amp;amp;amp;是怎么用的说?

问题描述 CreateBiTree函数参数为什么把引用符号去掉 就不能运行啊?*&是怎么用的说? #include #include typedef struct Node //二叉树结构定义 { char data; struct Node *lchild; struct Node *rchild; }Bitree; void CreateBiTree(Bitree *&t) //先序遍历创建二叉树 { char s; scanf("%c",&s); if(s