数据结构-C语言递归实现树的前中后序遍历
来源:互联网 发布:java手机游戏培训 编辑:程序博客网 时间:2024/06/06 02:11
#include <stdio.h>#include <stdlib.h>typedef struct tree{int number ; struct tree *left ; struct tree *right ; }TREE;//对树插入节点 void insert_tree(TREE **header , int number){ //创建一颗树 TREE *New = NULL ; New = malloc(sizeof(TREE));if(NULL == New) return ;//初始化树节点的值 New->number = number ; //分别将左子树和右子树设置为空 New->left = NULL ; New->right = NULL ; TREE **link = header ; TREE *cur ; while(cur = *link){ //判断新插入的节点和之前的值之间谁大谁小 //小的就放在左子树,大的就放到右子树 if(New->number < cur->number)//*link = cur->left ; link = &(cur->left) ;elselink = &(cur->right) ; }*link = New ;}//打印树 void print_tree(TREE *header , int lever){if(header == NULL)return ; print_tree(header->right , lever+1);int i ; for(i = 0 ; i < lever ; i++)printf("\t");printf("%d\n" , header->number);print_tree(header->left , lever+1);}//树的前序遍历 void front(TREE *header){if(header == NULL)return ; printf("%d " , header->number);front(header->left);front(header->right);}//树的中序遍历 void middle(TREE *header){if(header == NULL)return ; middle(header->left);printf("%d " , header->number);middle(header->right);}//树的后序遍历 void back(TREE *header){if(header == NULL)return ; back(header->left);back(header->right);printf("%d " , header->number);}int main(void){ int i ; int buffer[10] ; TREE *header = NULL ; for(i = 0 ; i < 10 ; i++) { buffer[i] = rand()%100 ; } for(i = 0 ; i < 10 ; i++) { //给树插入元素 insert_tree(&header , buffer[i]); } print_tree(header , 1); printf("\n前序遍历\n"); front(header); printf("\n中序遍历\n"); middle(header); printf("\n后序遍历\n"); back(header); getchar();}
0 0
- 数据结构-C语言递归实现树的前中后序遍历
- <数据结构>二叉树的递归、非递归以及层次遍历算法C语言实现
- C语言数据结构实现二叉树递归与非递归遍历(数据结构第四次实验)
- 数据结构 二叉树的递归算法、前序、中序、后序遍历(c语言实现)
- 二叉树遍历的c语言非递归实现
- 二叉树的非递归遍历C语言实现
- 【算法】二叉树的递归遍历C语言实现
- C语言实现二叉树的递归遍历与非递归遍历
- C语言实现二叉树的递归遍历和非递归遍历
- C语言实现二叉树的递归遍历与非递归遍历
- 数据结构-前中后序遍历的非递归实现
- 数据结构的C实现_二叉树的非递归遍历和层序遍历
- C语言实现二叉树的常用的算法(递归与非递归实现遍历)
- 遍历二叉树的递归算法与非递归算法以及C语言实现
- 二叉树遍历的递归和非递归实现(C语言)
- 数据结构C语言二叉树的遍历
- C语言二叉树的遍历,递归和非递归
- 【数据结构】二叉树的前中后序遍历递归和非递归实现
- 【算法作业】 循环赛问题 分治算法
- Three.js无法显示三维外部文件问题解决方案
- APUE,TLPI读书笔记——linux进程
- poj 2814 拨钟问题(枚举)
- 动态规划之最长递增子序列 最长不重复子串 最长公共子序列
- 数据结构-C语言递归实现树的前中后序遍历
- iOS开发之基础视图——UILabel
- Android自定义属性
- 开始把积攒下来的技术文章写完
- Android 消息传递机制分析
- 多线程03:《疯狂Java讲义》学习笔记——线程的生命周期
- WebView 无法加载html上传文件的控件
- HDOJ3652_B number
- 0.0.0.0/0是什么意思