【c语言】构建二叉树并前序遍历
来源:互联网 发布:windows网络编程 视频 编辑:程序博客网 时间:2024/04/28 23:32
#include <stdio.h>
#include <stdlib.h>
#define SIZE 50
//数的结点结构
typedef struct NODE{
int data;
struct NODE *left,*right;
}Node;
typedef struct stack{
int top;
Node *db[SIZE];//保存树的结点
}stack;
Node *creat_tree(void)
{
Node *t;
int x;
scanf("%d",&x);
if(x == 0)
t = NULL;
else{
t = (Node*)malloc(sizeof(Node));
t ->data = x;
printf("输入%d结点的左子结点:",t->data);
t->left = creat_tree();
printf("输入%d结点的右子结点:",t->data);
t->right = creat_tree();
}
return t;
}
//非递归实现前序遍历二叉树
void preVisit(Node *T)
{
//初始化栈
stack *s = (stack*)malloc(sizeof(stack));
s->top = 0;
while(T || s->top > 0){
if(T){
printf("3%d",T->data);
s->db[s->top++] = T;
T = T->left;
}
else{
T = s->db[--s->top];
T = T->right;
}
}
}
//递归实现前序遍历
/*
void preVisit(Node *T)
{
if(T){
printf("%d",T->data);
preVisit(T->left);
preVisit(T->right);
}
}
*/
int main(void)
{
Node *T = NULL;
printf("二叉数的建立,以输入‘0’结束\n");
printf("输入根结点: ");
T = creat_tree();
printf("二叉树建立完毕\n");
printf("前序遍历二叉树: \n");
preVisit(T);
return 0;
}
- 【c语言】构建二叉树并前序遍历
- 根据二叉树的前序遍历和中序遍历构建二叉树的c语言完整代码
- 根据前序遍历、中序遍历构建二叉树,并后序遍历输出。
- 根据前序与后序遍历构建二叉树,并以后序遍历结果输出
- 重建二叉树——输入前序、中序遍历构建二叉树并输出后序遍历
- 根据前序遍历,中序遍历构建二叉树
- 前序遍历和中序遍历构造二叉树----C语言数据结构
- 二叉树的创建、前/中/后序遍历、按层遍历C语言实现
- 基于先序遍历和中序遍历序列构建二叉树结构【C语言】
- 根据中序和前序遍历构建二叉树
- 由前序遍历构建一个特殊的二叉树
- c++ 二叉树的构建 前序遍历 中序遍历 后续遍历 层次遍历
- C语言 二叉树构建与前中后序遍历
- java实现根据前序遍历构建二叉树(前序遍历、中序遍历、后序遍历)
- C语言实现 前序、中序、后序遍历二叉树
- 数据结构 二叉树的递归算法、前序、中序、后序遍历(c语言实现)
- (C语言)二叉树非递归遍历前序和中序(数据结构十四)
- 中序遍历+后序遍历/前序遍历构建二叉树
- react-native android问题贴
- 51nod2006 飞行员配对(二分图最大匹配)
- 用RotateDrawable实现网易云音乐唱片机效果
- java解析压缩文件.zip,获取文件夹下的数据
- Wolf从零学编程-用Python打造简单加密程序(三)
- 【c语言】构建二叉树并前序遍历
- HDU 2509 Be the Winner Anti-SG
- (POJ
- 使用命令行编译和运行java程序
- 【Java多线程】多线程之间实现通讯与生产者与消费者模式
- 2017最新小程序发展报告公布
- 让你分分钟理解 JavaScript 闭包
- App工程从Eclipse迁移到Android Studio的问题总结
- 关于两个不知缘由的常见问题的一种解决方法