本文主要是介绍6-4 先序输出度为2的结点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
作者 DS课程组
单位 临沂大学
本题要求实现一个函数,按照先序遍历的顺序输出给定二叉树中度为2的结点。
函数接口定义:
void PreorderPrintNodes( BiTree T);
T是二叉树树根指针,PreorderPrintNodes按照先序遍历的顺序输出给定二叉树T中度为2的结点,格式为一个空格跟着一个字符。
其中BiTree结构定义如下:
typedef struct BiTNode
{ElemType data;struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
裁判测试程序样例:
#include <stdio.h>
#include <stdlib.h>typedef char ElemType;
typedef struct BiTNode
{ElemType data;struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;BiTree Create();/* 细节在此不表 */
void PreorderPrintNodes( BiTree T);int main()
{BiTree T = Create();printf("Nodes are:");PreorderPrintNodes(T);return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
输入为由字母和'#'组成的字符串,代表二叉树的扩展先序序列。例如对于如下二叉树,输入数据:
AB#DF##G##C##
输出样例(对于图中给出的树):
Nodes are: A D
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
C程序如下:
// 先序遍历并输出度为2的结点
void PreorderPrintNodes(BiTree T) {// 如果当前节点为空,直接返回if (T == NULL) {return;}// 检查当前节点的度是否为2(即同时有左子节点和右子节点)if (T->lchild && T->rchild) {// 输出当前节点的数据printf("%c ", T->data);}// 递归遍历左子树PreorderPrintNodes(T->lchild);// 递归遍历右子树PreorderPrintNodes(T->rchild);
}
这篇关于6-4 先序输出度为2的结点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!