栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

定义二叉树结点,创建二叉树,分别利用先序非递归算法、输出结果。

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

定义二叉树结点,创建二叉树,分别利用先序非递归算法、输出结果。

定义二叉树结点,创建二叉树,分别利用先序非递归算法、输出结果。

头文件:
#include
#include
typedef struct node{
char data;
struct node *left;
struct node *right;
}Node, *Tree;
Tree create_tree(){
Node root = NULL;
char ch;
scanf("%c", &ch);
if (ch != ‘#’){
root = (Node
)malloc(sizeof(Node));
root->data = ch;
root->left = create_tree(); // 递归创建
root->right = create_tree();
}
else{root = NULL;}
return root;
}
// 非-递归前序遍历二叉树
void preOrderNRec(Tree root)
{
Tree stack[20], node;//定义一个 树节点数组进行栈操作
int top = 0;
if (root == NULL)
{printf(“树为空n”);return;}
else
{
top++;
stack[top] = root; // 将根节点入栈
while (top > 0)
{ node = stack[top–];
printf(" %c", node->data);
if (node->right != NULL)
{stack[++top] = node->right; } // 入栈
if (node->left != NULL)
{stack[++top] = node->left;}
}
}
}

主函数:
int main()
{
printf(“请输入先序排列的二叉树,空节点为# n”);
Tree root = create_tree();
printf(“非递归实现前序遍历— n”);
preOrderNRec(root);
printf("n");
return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/663928.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号