正在加载图片...
7.二叉树算法综合举例 # define leng sizeof( BiNOde)/结点所占空间的大小 typedef int TElemType typedef struct BiTNode TElem Type struct biNOde *Child.*rchild BiTNode.* BiTree 本涂本客客水水*水客幸客客宗本水本客水客水客水*水水凇客幸客 功能:利用二叉树的的特性产生二叉树 输入:算法执行中输入各结点的满二叉树序号值和结点的值 输出:二叉树根指针 #define MAXSIze 100 BiTree Creat tre BiTNode *s(MAXSIZE+ll, root, q: TElem Type x printf("ix="), scant("%d%od"ki,&x)/*输入结点序号和值* while(il=0) q=(BiTNode *)malloc(sizeof( BiTNode)) s[]=q if(i=1)root=q;,/处理根结点* else i j=i2;,/j为当前结点的父结点序号* f(%2)si]-> rchild=q,/*当前结点为其父结点的右孩子* else }-> lchild=q,当前结点为其父结点的左孩子* printf("i,x="), scanf("%d%d",&i,&x),/*输入结点序号和值*/ return root,/*返回二叉树根指针* 功能:利用带空二叉树的先序序列生产二叉树 六输入:算法执行中输入带空二叉树的先序序列7.二叉树算法综合举例: #include "stdio.h" #define leng sizeof(BiTNode) /*结点所占空间的大小*/ typedef int TElemType; typedef struct BiTNode{ TElemType data; struct BiTNode *lchild,*rchild; } BiTNode,*BiTree; /******************************************************************* ** 功能:利用二叉树的的特性产生二叉树 ** ** 输入:算法执行中输入各结点的满二叉树序号值和结点的值 ** ** 输出: 二叉树根指针 ** *******************************************************************/ #define MAXSIZE 100 BiTree CreatTree() { BiTNode *s[MAXSIZE+1],*root,*q; int i,j; TElemType x; printf("i,x="); scanf("%d%d",&i,&x); /*输入结点序号和值*/ while(i!=0) { q=(BiTNode *) malloc(sizeof(BiTNode)); q->data=x;q->lchild=q->rchild=NULL; s[i]=q; if (i==1) root=q; /*处理根结点*/ else { j=i/2; /* j 为当前结点的父结点序号*/ if (i%2) s[j]->rchild=q; /*当前结点为其父结点的右孩子*/ else s[j]->lchild=q; /*当前结点为其父结点的左孩子*/ } printf("i,x="); scanf("%d%d",&i,&x); /*输入结点序号和值*/ } return root; /*返回二叉树根指针*/ } /******************************************************************* ** 功能:利用带空二叉树的先序序列生产二叉树 ** ** 输入:算法执行中输入带空二叉树的先序序列 **
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有