数据结构以孩子兄弟链存储的树的高度
来源:互联网 发布:搬家软件app 编辑:程序博客网 时间:2024/05/01 18:28
运行结果:
代码:
#include <stdio.h>#include <malloc.h>typedef char ElemType;typedef struct tnode{ ElemType data; //节点的值 struct tnode *hp; //指向兄弟 struct tnode *vp; //指向孩子节点} TSBNode;int TreeHeight(TSBNode *t);void TreeCreate(TSBNode *&t);void TreeDisp(TSBNode *t);int TreeHeight(TSBNode *t){ TSBNode *p; int m, max = 0; if(t==NULL) return(0); else if(t->vp==NULL) return(1); else { //求t的子树的最大高度max p=t->vp; while(p!=NULL) { m=TreeHeight(p); if(max<m) max=m; p=p->hp; } return(max+1); }}int main(){ TSBNode *tree; TreeCreate(tree); printf("Height: %d\n", TreeHeight(tree)); TreeDisp(tree); return 0;}void TreeCreate(TSBNode *&t){ //本例仅建造说明中特定的树,以支持演示 TSBNode *a, *b, *c, *d, *e, *f, *g; a = (TSBNode *)malloc(sizeof(TSBNode)); b = (TSBNode *)malloc(sizeof(TSBNode)); c = (TSBNode *)malloc(sizeof(TSBNode)); d = (TSBNode *)malloc(sizeof(TSBNode)); e = (TSBNode *)malloc(sizeof(TSBNode)); f = (TSBNode *)malloc(sizeof(TSBNode)); g = (TSBNode *)malloc(sizeof(TSBNode)); a->data = 'a'; b->data = 'b'; c->data = 'c'; d->data = 'd'; e->data = 'e'; f->data = 'f'; g->data = 'g'; a->vp = b; a->hp = NULL; b->vp = d; b->hp = c; c->vp = NULL; c->hp = NULL; d->vp = NULL; d->hp = e; e->vp = g; e->hp = f; f->vp = NULL; f->hp = NULL; g->vp = NULL; g->hp = NULL; t=a; //a作为根 return;}void TreeDisp(TSBNode *t){ if(t!=NULL) { printf("node value: %c\n", t->data); printf("%c\'s first child --> ", t->data); TreeDisp(t->hp); printf("%c\'s brother(its father\'s another child) --> ", t->data); TreeDisp(t->vp); } else { printf("NULL\n"); }}
0 0
- 数据结构以孩子兄弟链存储的树的高度
- 数据结构例程——以孩子兄弟链存储的树的高度
- 以孩子-兄弟链作为存储结构,求树的高度
- 以孩子兄弟链作为树的存储结构,编写一个求树的高度的递归算法
- 树的孩子兄弟存储结构
- 【数据结构】以孩子兄弟链表作存储结构,创建一棵树。并输出其先根、后根遍历序列;统计树中叶子结点的个数和深度
- 数据结构:树的孩子链表存储
- 求 以孩子-兄弟链表表示的树 的度、深度、叶结点和边
- 树的孩子兄弟链表实现
- 树的孩子兄弟链表应用
- 树的存储结构(树的二叉链表(孩子—兄弟))
- 树的存储:双亲数组法,孩子链表法,孩子兄弟法
- 树的孩子表示法,树的兄弟表示法,树的存储结构详解,数据结构-树的学习(2)
- 设计递归算法,求以“孩子-兄弟链表”表示的度
- 树的孩子兄弟表示法
- 求兄弟孩子树的深度
- 树的孩子兄弟表示法
- VC++ 树的孩子兄弟表示法
- UI for iOS (三) - TableView for iOS
- MySQL常用的面试题
- 运行项目时报错
- junit
- imageName:与imageWithContentsOfFile:区别
- 数据结构以孩子兄弟链存储的树的高度
- Ganglia监控hadoop、hbase集群
- iOS开发中的内存管理
- 操作系统的进程调度算法
- 使用android studio开发时支持Lambda语法
- 动态添加综合布局---动态添加控件及将某XML动态加入到Activity显示(续)
- cmcc访问一些国外网站访问不了
- Javascript正则表达式完全学习手册
- iOS地图定位使用几个小功能