非递归遍历二叉树.doc_第1页
非递归遍历二叉树.doc_第2页
非递归遍历二叉树.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/*非递归遍历二叉树*/ #include#include#defineStack_Init_Size100#defineStackIncreament10typedefstructBiLnodeintdata;structBiLnode*lchild;structBiLnode*rchild;BiLnode,*BiTree;typedefstructBiTree*top;BiTree*base;intstacksize;SqStack;/定义栈voidInitStack(SqStack&s)s.base=(BiTree*)malloc(Stack_Init_Size*sizeof(BiTree);/栈底地址if(!s.base)printf(errorn);s.top=s.base;s.stacksize=Stack_Init_Size;/构造空栈/初始化栈voidPush(SqStack&s,BiTreee)if(s.top-s.base=s.stacksize)/本满,追加存储空间s.base=(BiTree*)realloc(s.base,(s.stacksize+StackIncreament)*sizeof(BiTree);if(!s.base)printf(errorn);s.top=s.base+s.stacksize;s.stacksize+=StackIncreament;*s.top+=e;/向栈顶插入元素evoidPop(SqStack&s,BiTree&e)if(s.top=s.base)printf(error2n);e=*-s.top;/删除栈顶元素intStackEmpty(SqStacks)if(s.top=s.base)return1;elsereturn0;/判断栈是否为空voidCreateBiTree(BiTree&T)/单个生成结建立二叉树printf(输入7个树结点的值:);T=(BiTree)malloc(sizeof(BiLnode);BiTreep1=T;BiTreep2=(BiTree)malloc(sizeof(BiLnode);BiTreep3=(BiTree)malloc(sizeof(BiLnode);BiTreep4=(BiTree)malloc(sizeof(BiLnode);BiTreep5=(BiTree)malloc(sizeof(BiLnode);BiTreep6=(BiTree)malloc(sizeof(BiLnode);BiTreep7=(BiTree)malloc(sizeof(BiLnode);scanf(%d,&p1-data);p1-lchild=p2;p1-rchild=p6;scanf(%d,&p2-data);p2-lchild=p3;p2-rchild=p5;scanf(%d,&p3-data);p3-lchild=p4;p3-rchild=NULL;scanf(%d,&p4-data);p4-lchild=NULL;p4-rchild=NULL;scanf(%d,&p5-data);p5-lchild=NULL;p5-rchild=NULL;scanf(%d,&p6-data);p6-lchild=NULL;p6-rchild=p7;scanf(%d,&p7-data);p7-lchild=NULL;p7-rchild=NULL;/*voidDLR(BiTreeT)/先序遍历二叉树if(!T)return;elseprintf(%d,T-data);/访问二叉树树根DLR(T-lchild);/访问根的左子树DLR(T-rchild);访问右子树*/voidInOrderTraverse(BiTreeT,SqStacks)InitStack(s);/初始化栈BiTreep=T;Push(s,p);/树根进栈while(!StackEmpty(s)|!p)/当栈空或结点为空时结束if(p)/P非空访问结点,结点进栈,访问该结点左子树printf(%d,p-data);Push(s,p);p=p-lchild;else/P空结点出栈,访问右子树Pop(s,p);p=p-rchild;intma

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论