数据结构6-关于“树”的生成与操作的实例
来源:互联网 发布:马塔潘角海战知乎 编辑:程序博客网 时间:2024/05/16 07:56
程序实现用先序序列创建一棵二叉树,并输出字符D位于二叉树的层数。代码如下所示:
#include"stdio.h"typedef struct BiTNode{char data; /*结点的数据域*/struct BiTNode *lchild,*rchild; /*指向左孩子和右孩子*/}BiTNode,*BiTree;/*创建一棵二叉树*/CreatBiTree(BiTree *T){char c;scanf("%c",&c);if(c == ' ')*T = NULL;else{*T = (BiTNode *)malloc(sizeof(BiTNode)); /*创建根节点*/(*T)->data = c; /*向根结点中输入数据*/CreatBiTree(&((*T)->lchild)); /*递归地创建左子树*/CreatBiTree(&((*T)->rchild)); /*递归地创建右子树*/}}/*访问二叉树结点,输出包含D字符结点位于二叉树中的层数*/visit(char c,int level){if(c == 'D')printf("%c is at %d lever of BiTree\n",c,level);}/*遍历二叉树*/PreOrderTraverse(BiTree T,int level){if(T){visit(T->data,level);PreOrderTraverse(T->lchild,level+1);PreOrderTraverse(T->rchild,level+1);}}main(){int level =1;BiTree T = NULL; /*最开始T指向空*/CreatBiTree(&T); /*创建二叉树*/PreOrderTraverse(T,level); /*遍历二叉树,找到包含D字符结点位于二叉树中的层数*/getche();}
实现结果如下图所示:
实例与分析:
1.在创建二叉树的过程中有这么一行代码:*T = (BiTNode *)malloc(sizeof(BiTNode)),其中(BiTNode *)是否可以换成BiTree呢?答案是可以的,因为他俩可以看成是等效的。但是后面的sizeof(BiTNode)不可以换成sizeof(BiTree),因为BiTree是指针类型,而指针的sizeof都是一样大的。
0 0
- 数据结构6-关于“树”的生成与操作的实例
- 数据结构7-关于“图”的生成与操作的实例
- 数据结构2-动态生成顺序表的实例与分析
- 数据结构3-链表生成的实例与分析
- 数据结构关于二叉树的操作
- 数据结构9-关于折半查找的实例
- 关于d3生成图片的一些实例
- Sql Server关于数据结构的操作
- 数据结构BinaryTree实例(五):树的深度与广度
- 数据结构之二叉树的生成与遍历
- 考研数据结构与算法之树的生成(1)
- 数据结构与算法之带权图的最小生成树
- 静态页生成的类与实例!!
- 数据结构 实验三 树与二叉树的常见操作
- 数据结构之 单链表的实现与操作
- 数据结构之 队列的操作与实现
- 数据结构与算法 链表的操作
- 数据结构-5 堆的定义与操作
- CSharp、.NetQQ交流群
- Cocos2d-x描边字的实现
- iOS 滤镜 和 iOS6 中的Core Image技术
- 关键字Static的作用
- DatePicker,TimePicker设置滑动最大以及最小时间
- 数据结构6-关于“树”的生成与操作的实例
- 数据同步之各站点同步表触发器创建
- jQuery:提交表单前判断表单是否被修改过
- php-5.5.17 centos7
- LeetCode 方法详解
- IOS7 cell.selectionStyle = UITableViewCellSelectionStyleBlue 不起作用怎么办,选中后背景是浅灰色的。
- extern和static修饰全局变量的区别
- jquery选择器空格与大于号、加号与波浪号的区别
- C++结构体字节对齐