这个二叉树遍历代码的输入怎么结束啊 求解答

作者&投稿:左丘军 (若有异议请与网页底部的电邮联系)
C语言先序建立二叉树(如何结束输入)~

你的算法没啥大问题,毕竟是教材上的嘛。但咱就是说,你是不是当成单链表来输入了。。。要根据二叉树的结构来啊。
输入二叉树不像输入单链表那样输完加上一个终止符' '(空格)就行,而可能需要多个终止符,因为树有多个结尾处。这说得可能比较抽象,下面以你连续输入a,b,c为例。首先根据你的代码,输入方式类似前序遍历,那么系统会将b写为a的左孩子、c写为b的左孩子,接下来的一个' '仅表示c的左子树为空,而不代表整棵树结束(你以为结束了)——接下来来到c的右子树,需要第二个' '表明c的右子树为空,其次还有b的右子树、a的右子树需要' '来结束。(所以总计需要四个' ',才能结束输入)

你好,很高兴回答你的问题为你查到的是先序算法建立的二叉树,输入一个空格就行了。希望可以帮到您,祝您好运【摘要】
先序建立的二叉树怎么结束输入呢【提问】
你好,很高兴回答你的问题为你查到的是先序算法建立的二叉树,输入一个空格就行了。希望可以帮到您,祝您好运【回答】
#include
#include
#define MAXSIZE 100

typedef struct TNode
{
\x09char data;
\x09struct TNode *left;
\x09struct TNode *right;
}TNode,*Bitree;

void CreateTree(Bitree *T)
{
\x09char ch;
\x09if((ch==getchar())==' ')
\x09 *T=NULL;
\x09else
\x09{
\x09\x09*T=(TNode*)malloc(sizeof(TNode));
\x09\x09if(!(*T))
\x09\x09 exit(1);
\x09\x09(*T)->data=ch;
\x09\x09CreateTree(&(*T)->left);
\x09\x09CreateTree(&(*T)->right);
\x09 }
}
void Preorder(Bitree T)
{
\x09if(T)
\x09{
\x09\x09printf("%c",T->data);
\x09\x09Preorder(T->left);
\x09\x09Preorder(T->right);
\x09}
}
void Inorder(Bitree T)
{
\x09if(T)
\x09{
\x09\x09Inorder(T->left);
\x09\x09printf("%c",T->data);
\x09\x09Inorder(T->right);
\x09}
}
void Postorder(Bitree T)
{
\x09if(T)
\x09{
\x09\x09Postorder(T->left);
\x09\x09Postorder(T->right);
\x09\x09printf("%c",T->data);
\x09}
}

int main()
{
\x09Bitree T;
\x09printf("请按先序输入二叉树中结点的值,空格表示空值
");
\x09CreateTree(&T);
\x09printf("
");
\x09
\x09printf("先序遍历为:");
\x09Preorder(T);
\x09printf("

");
\x09
\x09printf("中序遍历为:");
\x09Inorder(T);
\x09printf("

");
\x09
\x09printf("后序遍历为:");
\x09Postorder(T);
\x09printf("

");
\x09getchar();
}【提问】
这是我的代码 运行没有问题 结束不了输入是为什么【提问】
你试试空格键【回答】
【提问】
【提问】
这就是按先序算法建立的二叉树,如果一个结点没有某棵子树,输入一个空格就行了。

比如对于如图所示的二叉树:



应该这样输入:

124两空格5两空格36三空格【回答】
还是不行呢 [泪奔]【提问】
目前平台为你查到的只有这个【回答】
要不你问问身边知道的人【回答】

这就是按先序算法建立的二叉树,如果一个结点没有某棵子树,输入一个空格就行了。

比如对于如图所示的二叉树:

应该这样输入:

124两空格5两空格36三空格

这是运行结果的截图:



原来的程序中,是多了一个“=”:

if((ch==getchar())==' ')

应为:

if((ch=getchar())==' ')

然后,运行时的输入,要先根据已有的二叉树的先序遍历(需要把每个叶结点的两个空子树,各用一个空格' '表示才行的)。



C语言二叉树遍历算法,不求代码,求大概讲解怎么做 要求实现前、中、后序、层序遍历的递归与非递归算法,及存储加索引的算法和在索引上的遍历算法。要求动画演示遍历过程。

C语言二叉树遍历算法,不求代码,求大概讲解怎么做 要求实现前、中、后序、层序遍历的递归与非递归算法,及存储加索引的算法和在索引上的遍历算法。要求动画演示遍历过程。

C语言二叉树遍历算法,不求代码,求大概讲解怎么做 要求实现前、中、后序、层序遍历的递归与非递归算法,及存储加索引的算法和在索引上的遍历算法。要求动画演示遍历过程。


二叉树的遍历(左中右及层级)
后序遍历是左孩子 -> 右孩子 -> 根节点,遍历结果为 4 5 2 6 7 3 1。这种顺序在某些场景中也很常见。最后是层序遍历,按照从左到右,同一层的节点顺序进行,结果为 1 2 3 4 5 6 7。它特别适用于查询二叉树的深度或层次结构。总结起来,理解二叉树遍历的关键在于理解节点访问的顺序,前中...

二叉树的前中后序及层次遍历及代码实现
首先,让我们通过一个示例树理解这些遍历方法:(参阅博客链接)前序遍历前序遍历遵循“根-左-右”的顺序,递归实现如下:递归代码:非递归代码:在非递归方法中,从根节点开始,先将其入栈,然后左子树,接着右子树,确保左子树先于右子树遍历。中序遍历中序遍历遵循“左-根-右”的顺序,中序遍历结果...

二叉树的遍历详解
首先,我们通过定义一个二叉树的结构体来开始讨论。以C++为例,递归实现的先序遍历代码简洁易懂,但迭代版本则更高效。通过实例,我们可以观察到迭代先序遍历的具体操作。虽然迭代先序遍历易于理解,但它并不直接适用于中序和后序遍历,需要特殊策略。对于中序遍历,递归和迭代版本都遵循先左子树、然后根...

求高手编写二叉树的非递归先序遍历和后序遍历的代码,要求和下面给出的...
Status PreOrderTraverse(BiTree T,Status (* Visit)(TElemType e)){\/\/先序遍历二叉树T的递归算法 if(T){ if(Visit(T->data))if(PreOrderTraverse(T->lchild,Visit))if(PreOrderTraverse(T->rchild,Visit))return OK;return ERROR;}else return OK;} void PostOrderTraverse(BiTree bt){\/...

二叉树的遍历程序怎么写
\/\/递归算法实现树的遍历 \/\/\/ \/\/先序递归 void preorderD(BiTree T){ if (T != NULL){ printf("%c", T->data);preorderD(T->lchild);preorderD(T->rchild);} } \/\/中序递归 void inorderD(BiTree T){ if (T != NULL){ inorderD(T->lchild);printf("%c", T->data);...

二叉树的遍历的完整代码是什么
二叉树遍历代码 include"iostream.h"include"stdlib.h"include"stdio.h"include<stack> using namespace std;define NULL 0 define OK 1 define OVERFLOW -1 typedef int Status;typedef struct node { char data;struct node *lchild;struct node *rchild;}*bitree;int k=0;int depth(bitree T)...

这个二叉树遍历代码的输入怎么结束啊 求解答
这就是按先序算法建立的二叉树,如果一个结点没有某棵子树,输入一个空格就行了。比如对于如图所示的二叉树:应该这样输入:124两空格5两空格36三空格 这是运行结果的截图:

生成并遍历二叉树?
= construct(s, i); \/\/ 生成该二叉树 cout << "其前序遍历序列为:";preOrder(root);cout << endl;cout << "其中序遍历序列为:";inOrder(root);cout << endl;cout << "其后序遍历序列为:";postOrder(root);cout << endl;return 0;} 编译通过,输出如下:符合示例结果,望采纳~

最全二叉树:完整详解二叉树的遍历以及完全二叉树等6种二叉树
首先,让我们理解二叉树的定义。二叉树是一种特殊的树形结构,每个节点最多只有两个子节点,通常称为“左子树”和“右子树”。这种结构形象地被称为“大裤衩”。每个节点的子树分为左右两部分,这为遍历操作提供了基础。接下来,我们讨论二叉树的遍历方式。主要有三种遍历方式:1)先序遍历(根左右)-...

二叉树的遍历
创建二叉树:前序遍历创建二叉树,有效节点为非0值,空节点为0值.务必将最末节点的下一级空节点以0输入,不然创建不正确.\/ void CreateTree(pNode &pRoot){ int iValue;cin >> iValue;if(iValue == 0){ return;} else { pRoot = new node;pRoot->c = iValue;pRoot->left = NULL;pRoot...

通榆县13893923063: 有关二叉树的 下面是输入二叉树的代码 可是该怎样输入才是正确的呢,还有怎样结束输入? -
战颖小儿: 输入:1空格2空格空格回车 表示根结点为1,右子树为2的二叉树.

通榆县13893923063: 求C语言编译程序:从键盘输入某一二叉树前序遍历及中序遍历序列,构造二叉树并输出该二叉树后序遍历序列 -
战颖小儿: 输入树的节点,输入0结束 1 2 3 4 5 6 7 8 9 0中序打印 1->2->3->4->5->6->7->8->9-> 后序打印 9->8->7->6->5->4->3->2->1-> 前序打印 1->2->3->4->5->6->7->8->9->////////////////////////////////////////////////////////////////////////////////////////// #include<stdlib.h>#...

通榆县13893923063: 二叉树遍历代码只能输入字符不能结束输入进行遍历.哪里错了呢?求高手指教. -
战颖小儿: void ThPreOrder(TBTNode *tb) // 先序线索化二叉树先序实现先序遍历 { TBTNode *p = tb; TBTNode *q; while(p != tb) //就是这个地方有错误~~ {2011年

通榆县13893923063: 遍历二叉树 编程
战颖小儿: //////////////////////////////////////////////////使用方法:输入树的节点,输入0结束 1 2 3 4 5 6 7 8 9 0 中序打印 1->2->3->4->5->6->7->8->9-> 后序打印 9->8->7->6->5->4->3->2->1-> 前序打印 1->2->3->4->5->6->7->8->9-> 程序原码://////////////////////////////////////////////////...

通榆县13893923063: 这是二叉树创建和遍历的部分程序,问题:创建中的递归和遍历中的递归,他们的结束条件各是什么? -
战颖小儿: 1.创建时,输入有效字符和",",节点是字符,非节点是",",当最后一个有效字符后","达到一定个数(具体个数不详)时就结束.2.遍历时,遍历过所有节点时结束.

通榆县13893923063: 二叉树的输入输出代码运行就停止工作? -
战颖小儿: 先序递归输出这个函数没错,你是输入的函数错了.首先你要明确一点,不可能只通过一种遍历序列来生成二叉树(不是一条链到底的那种),最少要有两种,比如先序和中序,这样才能确定一颗二叉树(如果有特殊的规则也可以,不过你这里...

通榆县13893923063: C语言数据结构“遍历二叉树” -
战颖小儿: [答案]: ////////////////////////////////////////////////// 使用方法: 输入树的节点,输入0结束 1 2 3 4 5 6 7 8 9 0 中序打印 1->2->3->4->5->6->7->8->9-> 后序打印 9->8->7->6->5->4->3->2->1-> 前序打印 1->2->3->4->5->6->7->8->9-> 程序原码: ////////////////////////////////...

通榆县13893923063: c语言问题 二叉树结构.怎么让建立节点结束,我输入的时候一直循环不能结束. -
战颖小儿: 你好,输入的时候不能输入空格和enter,比如一次输入abc#d##e##fg##h## 才可以.

通榆县13893923063: 求数据结构中二叉树的遍历的代码,谢谢 -
战颖小儿: 展开全部#include #include #include #include #include #define SIZE 100 using namespace std; typedef struct BiTNode // 定义二叉树节点结构 {char data; // 数据域 struct BiTNode *lchild,*rchild; // 左右孩子指针域 }BiTNode,*BiTree; int visit(...

通榆县13893923063: 关于二叉树前序中序后序有什么规律吗?急急急~~~ -
战颖小儿: 二叉树的遍历是指不重复地访问二叉树中的所有结点.二叉树的遍历可以分为以下三种: (1)前序遍历(DLR):若二叉树为空,则结束返回.否则:首先访问根结点,然后遍历左子树,最后遍历右子树;并且,在遍历左右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树. (2)中序遍历(LDR):若二叉树为空,则结束返回.否则:首先遍历左子树,然后访问根结点,最后遍历右子树;并且,在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树.(3)后序遍历(LRD):若二叉树为空,则结束返回.否则:首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网