博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构实验8
阅读量:5319 次
发布时间:2019-06-14

本文共 1268 字,大约阅读时间需要 4 分钟。

题目:一棵完全二叉树以顺序方式存储,设计一个递归算法,对该完全二叉树进行中序遍历。

test.h

#include
#include
#include
#define MAXSIZE 100typedef struct FullBiTree{ char node[MAXSIZE]; int n;}FullBiTree;FullBiTree *Init_Tree(){ FullBiTree *T; T=(FullBiTree *)malloc(sizeof(FullBiTree)); if(T!=NULL) { T->n=0; } return T;}void Set_Tree(FullBiTree *T,char *ch,int i){ char c; int j; if(T->n>=MAXSIZE-1) { return; } for(j =0;j
n++; T->node[T->n] = c; } return;}void seqInOrder(FullBiTree *T,int i){ if(i==0) //递归调用的结束条件 return; else { if(2*i<=T->n) seqInOrder(T,2*i);//中序遍历 i 的左子树 else seqInOrder(T,0); printf("%2c",T->node[i]);//输出根结点 if(2*i+1<=T->n) seqInOrder(T,2*i+1);//中序遍历 i 的右子树 else seqInOrder(T,0); }}

test.c

#include"test.h"int main(){    int num;    char *p;    FullBiTree *T;    T = Init_Tree();    p = (char *)malloc(sizeof(char));    printf("请输入每个结点:\n");    gets(p);    num = strlen(p);    printf("结点:%d\n",num);    Set_Tree(T,p,num);    printf("中序遍历:\n");    seqInOrder(T,1);    printf("\n");    return 0;}

 

转载于:https://www.cnblogs.com/wuyibb/p/6994659.html

你可能感兴趣的文章
MySQL数据库备份工具mysqldump的使用(转)
查看>>
NTP服务器配置
查看>>
【转】OO无双的blocking/non-blocking执行时刻
查看>>
关于 linux 的 limit 的设置
查看>>
HDU(4528),BFS,2013腾讯编程马拉松初赛第五场(3月25日)
查看>>
vim中文帮助教程
查看>>
MySQL基础3
查看>>
RxJS & Angular
查看>>
面向对象(多异常的声明与处理)
查看>>
MTK笔记
查看>>
ERROR: duplicate key value violates unique constraint "xxx"
查看>>
激活office 365 的启动文件
查看>>
无法根据中文查找
查看>>
[简讯]phpMyAdmin项目已迁移至GitHub
查看>>
转载 python多重继承C3算法
查看>>
【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
查看>>
css文本溢出显示省略号
查看>>
git安装和简单配置
查看>>
面向对象:反射,双下方法
查看>>
鼠标悬停提示文本消息最简单的做法
查看>>