数据结构——二叉树运算器源代码_第1页
数据结构——二叉树运算器源代码_第2页
数据结构——二叉树运算器源代码_第3页
数据结构——二叉树运算器源代码_第4页
数据结构——二叉树运算器源代码_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、#include#include#include#define STACK_INIT_SIZE 100#define STACKINCREASE 10类型图元;类型;typedef struct BiTNodeTElemType data;结构位* rchild、* rchild;PS节点、* PS树;类型树树状结构元素;类型树qelemtype;typedef struct QNodeQElemType data;结构qnode * next;QNode、*Queue;typedef struct伫列前端;队列三年;LinkQueue;typedef structSElemType *bas

2、e;SElemType *top;堆叠大小;SqStack;我是说,我是说,我是说将voidsinitstack(sqstacks )发送到s.base=(elemtype * ) malloc (stack _ init _ size * sizeof (elemtype ) );S.top=S.base;s .堆叠尺寸=堆叠_ init _ size;/init堆栈void Push(SqStack S,SElemType e)if(s.top-s.base=s.stacksize)s.base=(elemtype * ) realloc (s.base,(s.stacksizestack

3、increase ) * sizeof (elemtype ) );PK (! S.base )exit(1)s.top=s.base s .堆栈大小;s .堆栈大小=堆栈索引;以下*S.top =e;以下使用int Pop(SqStack S,elemtypee )。if(S.base=S.top )返回- 1;e=*-S.top;返回0;以下我是说,我是说,我是说voidininitqueue (链路队列q ) q.front=q.rear=(队列) malloc (大小(qode ) );PS (! q .前端退出(1)Q.front-next=NULL;/InitQueue语音队列q,

4、QElemType e)队列p;p=(队列) malloc (大小(qnode ) );PK (! p )退出(1)p-data=e;p-next=NULL;q .下一步=p;Q.rear=p;q .下一个=空;/EnQueueint DeQueue(LinkQueue Q,QElemType e) )队列队列p;PS (K.front=q.rear )返回0;p=Q.front-next;e=p-data;q .前下一个=p -下一个;表示if(Q.rear=p)Q.rear=Q.front;Q.rear-next=NULL;以下免费(p )返回0;/DeQueue二叉树,二叉树,二叉树,二

5、叉树请参见bitreeprecreattebitree () ()。碧树p;char ch;ch=getchar ();ch=getchar ();PS (ch=# )返回空值;p=(树) malloc (大小(节点) );p-data=ch;p-lchild=PreCreateBiTree ();p-rchild=PreCreateBiTree ();返回p;/precreattebitree将void postcreatebitree1(bi tree Bt ) )SqStack S;char ch;碧树p;启动堆栈(s )while(1)ch=getchar ();ch=getchar

6、();if(ch= )break;PK (AK=# )推(s,NULL )elsep=(树) malloc (大小(节点) );p-data=ch;Pop(S,p-rchild )Pop(S,p-lchild )推(s,p )以下以下Pop(S,bt )/PostCreateBiTree1bitreepostcreatebitree2(); 请参见。char ch;碧树p;ch=getchar ();ch=getchar ();PK (AK=# )返回空值;p=(树) malloc (大小(节点) );p-data=ch;p-rchild=PostCreateBiTree2();p-lchil

7、d=PostCreateBiTree2();返回p;/PostCreateBiTree2intpre_incrementate(bitreebt,char *P,char *Q,int n)PS;Bt=(bi tree ) malloc (sizeof (bi node ) );bt-data=P0;请参见if(n=1)1。 2bt-lchild=NULL;bt-rchild=NULL;返回0;以下for(i=0; il child=(bi tree ) malloc (sizeof (bi node ) );bt-lchild-data=P1;Pre_InCreate(bt-lchild、P

8、 1、q、I )以下elsebt-lchild=NULL;PS!=n-1)Bt-rcild=(bi树) malloc (sizeof (bi node ) );bt-rchild-data=P1 i;Pre_InCreate(bt-rchild,P 1 i,Q 1 i,n-1-i )以下elsebt-rchild=NULL;返回0;/Pre_InCreateint In_PostCreate(BiTree bt,char *P,char *Q,int n) )PS;Bt=(bi tree ) malloc (sizeof (bi node ) );bt-data=Qn-1;请参见if(n=1)

9、1。 2bt-lchild=NULL;bt-rchild=NULL;返回0;以下for(i=0; il child=(bi tree ) malloc (sizeof (bi node ) );bt-lchild-data=Qi-1;in _ post创建(Bt-lchild,p,q,I )以下elsebt-lchild=NULL;PS!=n-1)Bt-rcild=(bi树) malloc (sizeof (bi node ) );bt-rchild-data=Qn-2;in _ post创建(Bt-rchild,P i 1,Q i,n-i-1 )以下elsebt-rchild=NULL;返回

10、0;/in_postcreate使用voidvisit(trebletypech )。printf(%c ,ch );/Visit请参阅int PreRead(BiTree bt)PK (! PS )返回0;Visit(bt-data )预读(Bt-lchild )预读(Bt-rchild )返回0;/PreRead请参阅读入(bi tree Bt ) PK (! PS )返回0;读入(Bt-lchild )Visit(bt-data )读入(Bt-rchild )返回0;/InReadint PostRead(BiTree bt)PK (! PS )返回0;PostRead(bt-lchil

11、d )PostRead(bt-rchild )Visit(bt-data )返回0;/PostRead英特尔读(bi tree Bt ) AK链路队列q;碧树p;PS (! PS )返回0;InitQueue(Q )EnQueue(Q,bt )while (! (Q.front=Q.rear)请参见DeQueue(Q,p )Visit(p-data )if (p-lchild )要求(q,p-lchild )if (p-rchild )要求(q,p-rchild )以下返回0;/TierReadint Number(BiTree bt)int n1、n2;PK (! Bt )返回0;n1=Nu

12、mber(bt-lchild )n2=Number(bt-rchild )return 1 n1 n2;/Number以int Leaf(BiTree bt) )为首int l1、l2;PS (! Bt )返回0;PS (! PS PS PS! Bt-rchild )返回1;l1=Leaf(bt-lchild )l2=Leaf(bt-rchild )返回L1 L2;/Leafint heightint h1、h2;PK (! Bt )返回0;h1=Height(bt-lchild )h2=Height(bt-rchild )return 1 (h1h2? h1:h2;/Heightint wi

13、de (bi树Bt,int *w,intx ) 22222222222222222222222222PK (! PS )返回0;PSwx=wx 1;PS (PC-lchild )宽度(一个蓝光灯,w,x 1)PS (PR PS )宽度(一个飞行器,w,x 1)返回0;/Wide语音复制(bi树p、bi树q )PS树PS、PS;PS (! 问)P=NULL;else复制(LP,Q-lchild )复制(RP,Q-rchild )p=(树) malloc (大小(节点) );P-data=Q-data;P-lchild=lp;P-rchild=rp;以下/CopyBiTree将int DestroyBiTree(BiTree bt) )PK (! PS )返回0;PS (PC-lchild )bitdestroyree(bt-lchild )PPSbitdestroyree(bt-rcild )PK (! PS PS PS! PS PS自由号列车bt=NULL;返回0

温馨提示

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

评论

0/150

提交评论