二叉树测试,递归遍历,随后加上非递归遍历
来源:互联网 发布:智慧芽数据库 编辑:程序博客网 时间:2024/06/03 14:00
#ifndef _TREE_H#define _TREE_Htypedef struct _TREE{int data;struct _TREE * left;struct _TREE * right;}TREE, * PTREE;void init(TREE * tree);void TreePrint(TREE * tree);void TreePrint1(TREE * tree);void TreePrint2(TREE * tree);TREE * add(TREE * left, int data, TREE * right);TREE * create(TREE * tree);void clear(TREE * tree);#endif
#include "Tree.h"#include <iostream>#include <stdlib.h>using namespace std;void init(TREE * tree){tree->left=NULL;tree->right=NULL;}void TreePrint(TREE * tree){if(tree!=NULL){TreePrint(tree->left);cout<<tree->data<<" ";TreePrint(tree->right);}}void TreePrint1(TREE * tree){if(tree!=NULL){TreePrint(tree->left);TreePrint(tree->right);cout<<tree->data<<" ";}}void TreePrint2(TREE * tree){if(tree!=NULL){cout<<tree->data<<" ";TreePrint(tree->left);TreePrint(tree->right);}}TREE * create(TREE * tree){static int count=0;if(tree==NULL){tree=(PTREE)malloc(sizeof(TREE));tree->data=count;tree->left=tree->right=NULL;}else if(count>=10){tree->left=NULL;tree->right=NULL;return NULL;}else{tree->left=create(tree->left);tree->right=create(tree->right);}count++;return tree;}TREE * add(TREE * left, int data, TREE * right){TREE * node;node=(PTREE)malloc(sizeof(TREE));node->data=data;if(left==NULL)node->left=NULL;if(right==NULL)node->right=NULL;else{node->left=left;node->right=right;}return node;}void clear(TREE * tree){TREE * left;TREE * right;if(tree!=NULL){cout<<"delete "<<tree->data<<" ";if(tree->left!=NULL){left=tree->left;clear(left);}if(tree->right!=NULL){right=tree->right;clear(right);}free(tree);}}
#include "Tree.h"#include <iostream>using namespace std;void main(void){TREE * node;TREE * node1;TREE * node2;TREE * node3;TREE * node4;TREE * node5;TREE * node6;node3=add(NULL, 12, NULL);node4=add(NULL, 13, NULL);node5=add(NULL, 14, NULL);node6=add(NULL, 15, NULL);node1=add(node3, 10, node4);node2=add(node5, 11, node6);node=add(node1, 9, node2);//node->data=9;//node->left=node1;//node->right=node2;TreePrint(node);cout<<endl;TreePrint1(node);cout<<endl;TreePrint2(node);cout<<endl;clear(node);system("pause");}
没用的函数大家可以忽略掉就ok了
测试结果
0 0
- 二叉树测试,递归遍历,随后加上非递归遍历
- 非递归遍历二叉树
- 二叉树遍历非递归
- 非递归遍历二叉树
- 二叉树非递归遍历
- 二叉树非递归遍历
- 非递归遍历二叉树
- 二叉树非递归遍历
- 非递归遍历二叉树
- 非递归遍历二叉树
- 非递归遍历二叉树
- 非递归遍历二叉树
- 非递归遍历二叉树
- 二叉树非递归遍历
- 二叉树遍历--非递归
- 二叉树非递归遍历
- 非递归遍历二叉树
- 二叉树非递归遍历
- Android UI学习 - 对话框 (AlertDialog & ProgressDialog)
- acm-UVA1055(水题)
- First,FirstOrDefault,Single,SingleOrDefault的区别
- Knockout.js及MVVM模式介绍
- acm-UVA10071(水题)
- 二叉树测试,递归遍历,随后加上非递归遍历
- Divisibility+dfs+剪枝
- 关于Java的事件分派机制及两个可能的语言扩展
- 话说vector
- QRCode二维码生成方案及其在带LOGO型二维码中的应用(1)
- ConcurrentModificationException异常解决办法
- 学习的网站
- 耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,
- MDI父窗体和子窗体之间怎么传值?