二叉树的创建及遍历(求问如何实现没有规律的二叉结点树的创建?)
来源:互联网 发布:进销存软件推荐 编辑:程序博客网 时间:2024/05/16 08:27
比如创建一棵:8、16、10、5、7、9 怎么创建?
#include <iostream>#include <queue>#include <assert.h>using namespace std;//typedef node_t struct node_t {struct node_t *right;struct node_t *left;int nodeV;};queue<node_t*>p;//定义一个二叉树队列指针Pvoid BuidTree(node_t *&Node,int n)//创建一颗二叉树{int temp;if (Node==NULL)//如果头结点为空{node_t *newNode= new node_t();newNode->nodeV=n;newNode->right=NULL;newNode->left=NULL;temp=n;Node=newNode;}else if (Node->nodeV<n)//按照图中二叉树结点树规律,将其分别放到左右指树{BuidTree(Node->right,n);//疑问:若是一颗没有任何规律的结点树该如何创建!!?}else{BuidTree(Node->left,n);}}void PrintTree(){if (p.front()==NULL)return ;//判断首指针是否为空node_t *Node=p.front();//将队列首指针传递给二叉树指针cout<<p.front()->nodeV<<" ";//输出节点数值p.push(p.front()->left);//先压入左指树p.push(p.front()->right);p.pop();PrintTree();//递归调用PrintTree}int main(){node_t *Node=NULL;BuidTree(Node,8);//创建一颗8、6、10、5、7、9的二叉树BuidTree(Node,6);BuidTree(Node,10);BuidTree(Node,5);BuidTree(Node,7);BuidTree(Node,9);BuidTree(Node,11);p.push(Node);PrintTree();cout<<endl;system("pause");return 0;}
- 二叉树的创建及遍历(求问如何实现没有规律的二叉结点树的创建?)
- C语言实现二叉树的基本操作---创建、遍历、求深度、求叶子结点
- C语言实现二叉树的基本操作---创建、遍历、求深度、求叶子结点
- 二叉树的创建及遍历实现
- 二叉树创建、遍历、叶结点个数及深度的操作实现
- C二叉树的基本操作---创建、遍历、求深度、求叶子结点
- 二叉树的基本操作精集(创建、遍历、求深度结点以及叶子结点个数)
- 二叉树的操作:创建、遍历、求树的深度、叶子结点数
- 二叉树的创建及遍历方式
- 二叉树的创建及遍历
- 链式二叉树的创建及遍历
- 链式二叉树的创建及遍历
- 二叉树的创建及遍历
- 二叉树的创建,及遍历 操作
- 二叉树的创建及遍历
- 二叉树的创建及遍历
- 二叉树的创建及遍历
- 二叉树的创建及遍历
- 浅析android应用增量升级
- 前端文件优化方案
- OCP-1Z0-053-V13.02-219题
- 有关iis hack的一些方法整理
- GPS-Graph Processing System集群安装笔记(一)
- 二叉树的创建及遍历(求问如何实现没有规律的二叉结点树的创建?)
- Android 中fill_parent、wrap_content和match_parent的区别
- easyUI+ThinkPHP使用扩展datagrid-filter简单示例
- 入侵时隐藏自己的真正身份
- static作用const作用
- javascript---处理图片翻转器
- u-boot 源码分析讲解
- NC高级技术笔记
- Hadoop家族