初学数据结构之二叉树
来源:互联网 发布:淘宝详情页装修 编辑:程序博客网 时间:2024/06/05 18:30
一:二叉树的链表实现typedef struct TreeNode *BinTree;typedef BinTree Position;struct TreeNode{int Data;BinTree Left;BinTree Right;}二:二叉树的遍历void PreOrderTraveral(BinTree BT) //前序遍历{if(BT){printf("%d",BT->Data);PreOrderTraveral(BT->Left);PreOrderTraveral(BT->Right);}}void InOrderTraveral(BinTree BT) //中序遍历{if(BT){InOrderTraveral(BT->Left);printf("%d",BT->Data);InOrderTraveral(BT->Right);}}void PostOrderTraveral(BinTree BT) //后序遍历{if(BT){PostOrderTraveral(BT->Left);PostOrderTraveral(BT->Right);printf("%d",BT->Data);}}void InOrderTraveral(BinTree BT) //中序遍历的堆栈实现{BinTree T=BT;Stack S=CreatStack(MaxSize);while(T || !IsEmpty(S)){while(T){Push(S,T);T=T->Left;}if(!IsEmpty(S)){T=Pop(S);printf("%5d",T->Data);T=T->Right;}}}void PreOrderTraveral(BinTree BT) //先序遍历的堆栈实现{BinTree T=BT;Stack S=CreatStack(MaxSize);while(T || !IsEmpty(S)){while(T){Push(S,T);printf("%5d",T->Data);T=T->Left;}if(!IsEmpty(S)){T=Pop(S);T=T->Right;}}}void LevelOrderTraveral(BinTree BT) //层次遍历的队列实现{QueneQ;BinTree T;if(!BT)return;Q=CreatQuene(MaxSize);Add(Q,BT);T=DelectQ(Q);printf("%d\n",T->Data);if(T->Left)AddQ(Q,T->Left);if(T->Right)AddQ(Q,T->Right);}
0 0
- 初学数据结构之二叉树
- 初学数据结构---树和二叉树
- 初学数据结构---二叉树层次遍历
- 初学数据结构---二叉树,线索二叉树相关算法
- 数据结构之二叉树
- 数据结构之二叉树
- 数据结构之二叉树
- 数据结构之二叉树
- 数据结构之二叉树
- 数据结构之二叉树
- 数据结构之二叉树
- 数据结构之二叉树
- 数据结构之二叉树
- 数据结构之二叉树
- 数据结构之二叉树
- 数据结构之二叉树
- 数据结构之二叉树
- 数据结构之二叉树
- Python - 两个列表(list)组成字典(dict)
- ,典型递归问题-F(1025)mod 5 的值
- Soldier and Badges(546B)
- bresenham 画线算法
- 【第四季《中国好声音》歪评二:双盲眼模式掀起好声音高潮】
- 初学数据结构之二叉树
- 递归实现求Fibonacci数列的第n项
- redis 安装笔记(一)
- 【Maven】Fatal error compiling: invalid target release: 1.7 -> [Help 1]
- 实用程序软件包(关于使用静态函数报错问题“Static function declared but not defined in C+++ "eh.h is only for C++!"报错问题)
- Vector::assign的使用
- iOS - 如何集成支付宝
- 若干有序序列,合并成一个新的有序序列
- Project Euler:Problem 91 Right triangles with integer coordinates