当前位置: 首页 > news >正文

贵阳建立网站东莞做网站 动点官网

贵阳建立网站,东莞做网站 动点官网,网页设计怎么分析网站啊,东坑镇网站建设公司数据结构 ——二叉树转广义表 1、树转广义表 如下一棵树#xff0c;转换为广义表 root(c(a()(b()()))(e(d()())(f()(j(h()())())))) (根#xff08;左子树#xff09;#xff08;右子树#xff09;) 代码实现 #includestdio.h #includestdlib.h//保存…数据结构 ——二叉树转广义表 1、树转广义表 如下一棵树转换为广义表 root(c(a()(b()()))(e(d()())(f()(j(h()())())))) (根左子树右子树) 代码实现 #includestdio.h #includestdlib.h//保存二叉树到文件 #define FNAME ../test16_save/out.txt #define NAMESIZE 32 struct node_st {char data;struct node_st *l,*r; }; struct node_st *treeNULL; //char型会存在不可预知的字符不用它来传参 int insert(struct node_st **root,int data) {struct node_st *node;//走到空节点或叶子节点if(*rootNULL){node(struct node_st*)malloc(sizeof(struct node_st));if(nodeNULL)return -1;node-datadata;node-lNULL;//防止野指针的出现node-rNULL;*rootnode;//根节点指向创建出来的新节点后面递归时root为传入的左或右子树的指针return 0; }//比当前节点小的插入左子树比节点大的插入右子树,递归遍历if(data(*root)-data)return insert((*root)-l,data);return insert((*root)-r,data); } void draw_(struct node_st *root,int level) {/*往左边倒画出树的结构先画当前节点的右子树再跟节点最后root-rrootroot-l*/if(rootNULL)return; //空节点或空的叶子结点//先画右子树右子树不止一层所以递归调用画右子树的右子树当前层的下一层draw_(root-r,level1);//画空格,即当前节点前面的空格for(int i0;ilevel;i)printf( );//画根节点printf(%c\n,root-data);//画左子树draw_(root-l,level1);} void draw(struct node_st *root) {//根据层数画出树和空格draw_(root,0); } //销毁二叉树后序遍历思想先销毁当前节点的左子树再销毁当前节点的右子树最后销毁当前节点 void destroy(struct node_st *root) {if(rootNULL)return ;destroy(root-l);destroy(root-r);free(root); } //保存为广义表的形式根左子树右子树 int save_(struct node_st *root,FILE *fp) {fputc((,fp);//为空或走到叶子结点if(root NULL){fputc(),fp);return 0;}//不为空把根节点打印出来fputc(root-data,fp);//递归保存左子树save_(root-l,fp);//递归保存右子树save_(root-r,fp);fputc(),fp);return 0; } int save(struct node_st *root,const char *path) {FILE *fpfopen(path,w);if(fpNULL){printf(open file %s failed\n,path);return -1;}// save_(root,fp);save_(tree,fp);fclose(fp);return 0; } int main() {char arr[]cefadjbh;int i;for(i0;isizeof(arr)/sizeof(arr[0])-1;i) //-1是为了去掉最后一个\0{//无头节点要改变指针的指向传二级指针insert(tree,arr[i]);}draw(tree);save(tree,FNAME);destroy(tree);return 0; }2、根据广义表画出二叉树 假设广义表为 (c(a()(b()()))(e(d()())(f()(j(h()())())))) 画出该二叉树 实现过程先拿到表的第一个字符判断是不是是的话继续拿第二个字符不是的话则为根节点保存该根节点数据继续左右子树的递归存值读完左右子树后继续读最后一个递归结束返回这棵树。 代码实现 #includestdio.h #includestdlib.h#define FNAME ../test16_save/out.txt #define NAMESIZE 32 struct node_st {char data;struct node_st *l,*r; }; void draw_(struct node_st *root,int level) {/*往左边倒画出树的结构先画当前节点的右子树再跟节点最后root-rrootroot-l*/if(rootNULL){// printf(Empty node at level %d\n, level); // Debug outputreturn;}//先画右子树右子树不止一层所以递归调用画右子树的右子树当前层的下一层draw_(root-r,level1);//画空格,即当前节点前面的空格for(int i0;ilevel;i)printf( );//画根节点printf(%c\n,root-data);//画左子树draw_(root-l,level1);} void draw(struct node_st *root) {//根据层数画出树和空格printf(draw tree:\n);draw_(root,0); } struct node_st *load_(FILE *fp) {int c;struct node_st *root;cfgetc(fp);//读到的第一个一定是不是说明文件有问题if(c!(){fprintf(stderr,fgetc():error\n);exit(1);}cfgetc(fp);//读完 后继续读到,说明树为空if(c))return NULL;//读到根节点保存到root中rootmalloc(sizeof(*root));if(rootNULL){fprintf(stderr,malloc():error\n);exit(1);}root-datac;//继续读左右子树root-lload_(fp);root-rload_(fp);//读完左右子树后继续读最后一个cfgetc(fp);if(c!)){fprintf(stderr,fgetc():error\n);return NULL;}return root; } struct node_st *load(const char *path) {FILE *fp;fpfopen(path,r);struct node_st *root;if(fpNULL){printf(open file %s failed\n,path);return NULL;}rootload_(fp);fclose(fp);return root; }int main() {struct node_st *root;rootload(FNAME);draw(root);return 0; }
http://www.dnsts.com.cn/news/113789.html

相关文章:

  • 网站建设自由容器是什么意思廊坊网站建设公司
  • 宁波高端网站建设公司旅游网站 建设平台分析
  • 如何做自己的简历网站网站seo知识
  • 114啦建站程序网站建设空间多大
  • 个人做电影网站赚钱吗长春市规划建设局网站查询
  • 学前心理学课程建设网站html5游戏开发
  • 网站域名和空间关于我们做网站
  • 做一个美食网站怎么做电子商务网站建设发展报告
  • 网站如何做关键词引流有什么网站可以做毕业影像
  • 网站分享到朋友圈代码更新wordpress创建目录失败
  • 留学生做留服证明在哪个网站建筑优化公司排名
  • 同一个空间可以做两个网站么wordpress手机编辑器
  • 大气个人网站源码申请新账号
  • 微购物网站建设wordpress替代
  • 校园网站建设年度工作计划网站内容
  • 做动画视频的网站有哪些网店网站技术方案
  • 邹城网站网站建设济南网签查询
  • 免费的网站搭建烟台网站快速优化排名
  • 黑链 对网站的影响搭建广告网站费用
  • 专门做ppt的网站斧头免费模板下载网
  • 自建网站 备案广州市番禺人才网
  • 公司网站建设方案建议宁波网站建设工作
  • 番禺网站建设三杰科技昆明门户网站建设
  • 国外文创产品设计网站meta 优化建议
  • 北京网站建设龙鹏网站文章标题
  • 免费行情软件网站大全下载怎么用网吧电脑做网站服务器
  • 开利网络企业网站建设第一品牌网页制作基础成绩
  • 400电话安装佛山营销网站建设干完房产中介整个人废了
  • 网站文章内容页keyword设置找什么样的公司帮助做网站
  • 免备案做网站可以盈利吗outlook企业邮箱