2022年用c语言实现了二叉树的数据定义 .pdf
《2022年用c语言实现了二叉树的数据定义 .pdf》由会员分享,可在线阅读,更多相关《2022年用c语言实现了二叉树的数据定义 .pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、用 c 语言实现了二叉树的数据定义,二叉树的构建、销毁,以及先序、中序、后序的递归算法,非递归算法正在研究中。/*-*/二叉树的二叉链表存储结构C 语言实现。/实现了利用先序序列创建一棵二叉树,先序、中序、后序遍历算法的递归/和非递归算法。/版本:v1.0/环境:Visual C+6.0/作者:sunnyrain/日期:2007-8-24/*-*/BiTree.h struct BiTNode/采用二叉链表存储结构 char data;struct BiTNode*lchild;struct BiTNode*rchild;BiTNode;struct BiTNode*CreateBiTree(
2、);int DestroyBiTree(struct BiTNode*T);int visit(char elem);/递归遍历算法int PreOrderTraverse_R(struct BiTNode*T,int(*visit)(char elem);int InOrderTraverse_R(struct BiTNode*T,int(*visit)(char elem);int PostOrderTraverse_R(struct BiTNode*T,int(*visit)(char elem);/非递归遍历算法void PreOrderTraverse(struct BiTNode*
3、T,int(*visit)(char elem);void InOrderTraverse(struct BiTNode*T,int(*visit)(char elem);void PostOrderTraverse(struct BiTNode*T,int(*visit)(char elem);名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 8 页 -/stack.h 堆栈数据结构,用于非递归算法中的附加空间#define STACK_SIZE 256 struct stack struct BiTNode*elemSTACK_SIZE;int top;/top 总是指向栈顶元
4、素的上一个元素int bottom;/恒 0;void initStack(struct stack*s);struct BiTNode*getTop(struct stack*s);struct BiTNode*pop(struct stack*s);void push(struct stack*s,struct BiTNode*p);int isEmpty(struct stack*s);/stack.c 堆栈的实现#include#include#include stack.h/初始化堆栈为0,栈指针为0 void initStack(struct stack*s)memset(s-el
5、em,0,STACK_SIZE);s-top=s-bottom=0;/获取栈顶元素,栈顶指针不变struct BiTNode*getTop(struct stack*s)return s-elems-top-1;/弹出&返回栈顶元素struct BiTNode*pop(struct stack*s)if(s-top=s-bottom)/若栈空 printf(Stack is empty!n);return 0;名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 8 页 -s-top;return s-elems-top;/将 pB 指针压入栈中void push(struct sta
6、ck*s,struct BiTNode*pB)if(s-topelems-top=pB;+s-top;else printf(Stack is full!n);/判断栈是否为空,空返回非0 int isEmpty(struct stack*s)return s-top=s-bottom;/BiTree.c 二叉树创建、销毁、递归算法实现#include#include#include BiTree.h#include stack.h struct BiTNode*CreateBiTree()/采用先序递归方法创建一棵二叉树 struct BiTNode*T;char ch,tmp;printf
7、(please input the value of the node:n);scanf(%c,&ch);tmp=getchar();/忽略回车符if(ch=&)/输入&符号表示此节点为空 printf(Null BiTreeNode Created!n);T=NULL;return NULL;T=(struct BiTNode*)malloc(sizeof(BiTNode);/为当前节点分配内存名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 8 页 -if(!T)printf(Allocate memory failed!n);return NULL;T-data=ch;/为当
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年用c语言实现了二叉树的数据定义 2022 年用 语言 实现 二叉 数据 定义
限制150内