二叉数的创建
来源:互联网 发布:淘宝logo怎么设计 编辑:程序博客网 时间:2024/05/17 22:25
实现一种创建二叉树的方法。输入形式如下:8 7 3 1 # 5 6 2 4 # # # # 9 @,@代表输入结束,#代表此节点为空。
实现方法:
1.遍历输入数组,若当前为
1.若输入第一个字符为@,则返回空树
2.将第一字符生成树节点,作为树的根节点,并将其放入一个字符队列queue中
3.遍历输入字符数组
a.若当前输入为@,则结束程序并返回根节点
b.取出队列中字符,若为#,则遍历循环变量+2,并继续遍历
c.取出队列中字符,将当前输入字符生成树节点并作为队列字符中的左节点,并入队;若下一个输入为@,则结束并返回,否则将下一个作为队列的右节点,并入队
#include <stdio.h>#include "Queue.h"typedef elemType_Tree char;typedef struct myTreeNode{ elemType_Tree data; struct myTreeNode *right; struct myTreeNode *left;}Tree;Tree *CreateTreeNode(elemType_Tree data){ Tree *newNode = (Tree *)malloc(sizeof(Tree)); if(newNode == NULL) { printf("There is not enough memory to create a new tree node !\n"); eixt(1); }else { newNode->data = data; newNode->right = NULL; newNode->left = NULL; } return newNode;}Tree *CreateTree(elemType_Tree input[], Tree *T){ Queue queue; Queue *q = &queue; int i = 0; elemType_Tree QueueHead; if(input[0] == '@' || input[0] == '#') { return T; }else { T = CreateTreeNode(input[0]); enQueue(q,intput[0]); } i = 1; while(input[i] != '@') { QueueHead = outQueue(q); ?????? i ++; } clearQueue(q); return T;}int main(){ elemType_Tree input[] = "8731#5624####9@"; Tree *T = NULL; T = CreateTree(input,T); return 0;}
- 二叉数的创建
- 二叉树的创建、遍历、深度、叶子节点数
- 二叉数的遍历
- 二叉数的遍历
- 二叉树的创建
- 二叉树的创建
- 二叉树的创建。
- 二叉树的创建
- 二叉树的创建
- 二叉树的创建
- 二叉树的创建
- 二叉树的创建
- 二叉树的创建
- 二叉树的 创建
- 二叉树的创建
- 二叉树的创建
- 二叉树的操作:创建、遍历、求树的深度、叶子结点数
- 二叉树的创建,遍历,叶节点数,总结点数,深度
- VR全景图效果
- 基于Nios II的DMA传输
- execl函数
- 格式输出
- C语言部分总结
- 二叉数的创建
- GoAhead Web Server的特性及技术
- C#中的事件
- java中有哪些变量?
- 项目 4
- 位操作总结
- 利用GoAhead构建嵌入式web应用
- 月份与switch语句
- Kinect for Windows SDK v1.7详细介绍