【第十周项目1】二叉树算法验证(一)
来源:互联网 发布:提升数据质量 编辑:程序博客网 时间:2024/06/16 06:43
/* Copyright (c)2017,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:33.cpp 作 者:尚文哲完成日期:2017年11月9日 问题描述: 运行并重复测试教学内容中涉及的算法。改变测试数据进行重复测试的意义在于, 可以从更多角度体会算法,以达到逐渐掌握算法的程度。 使用你的测试数据,并展示测试结果,观察运行结果,以此来领会算法。 输入描述: 若干测试数据。 程序输出: 对应数据的输出。 */ //(1)头文件: #define MaxSize 100 typedef char ElemType; typedef struct node { ElemType data; //数据元素 struct node *lchild; //指向左孩子 struct node *rchild; //指向右孩子 } BTNode; void CreateBTNode(BTNode *&b,char *str); //由str串创建二叉链 BTNode *FindNode(BTNode *b,ElemType x); //返回data域为x的节点指针 BTNode *LchildNode(BTNode *p); //返回*p节点的左孩子节点指针 BTNode *RchildNode(BTNode *p); //返回*p节点的右孩子节点指针 int BTNodeDepth(BTNode *b); //求二叉树b的深度 void DispBTNode(BTNode *b); //以括号表示法输出二叉树 void DestroyBTNode(BTNode *&b); //销毁二叉树 #include <stdio.h> #include <malloc.h> //(2)源文件 void LevelOrder(BTNode *b) { BTNode *p; BTNode *qu[MaxSize]; //定义环形队列,存放节点指针 int front,rear; //定义队头和队尾指针 front=rear=-1; //置队列为空队列 rear++; qu[rear]=b; //根节点指针进入队列 while (front!=rear) //队列不为空 { front=(front+1)%MaxSize; p=qu[front]; //队头出队列 printf("%c ",p->data); //访问节点 if (p->lchild!=NULL) //有左孩子时将其进队 { rear=(rear+1)%MaxSize; qu[rear]=p->lchild; } if (p->rchild!=NULL) //有右孩子时将其进队 { rear=(rear+1)%MaxSize; qu[rear]=p->rchild; } } } // main 函数 int main() { BTNode *b; CreateBTNode(b,"A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))"); printf("二叉树b: "); DispBTNode(b); printf("\n"); printf("层次遍历序列:\n"); LevelOrder(b); DestroyBTNode(b); return 0; }
阅读全文
0 0
- 【第十周项目1】二叉树算法验证(一)
- 第十一周--项目一二叉树算法验证(一)
- 第十周 项目一 验证算法 (2)二叉树构造算法的验证
- 第十一周项目一(1)二叉树算法验证-层次遍历算法的验证
- 第十一周 项目一 -二叉树算法验证(1)层次遍历算法的验证
- 【第十周项目1】二叉树算法验证(二)
- 【第十周项目1】二叉树算法验证(三)
- 数据结构第十周项目一-二叉树算法验证
- 第十周项目一C/C++二叉树算法验证
- 第十一周--项目一二叉树算法验证(二)
- 第十一周--项目一二叉树算法验证(三)
- 第十一周--项目一二叉树算法验证(四)
- 第十四周项目一 验证算法(平衡二叉树)
- 第十一周项目一-二叉树算法验证(2)二叉树构造算法的验证
- 第十一周 项目一 -二叉树算法验证(2)二叉树构造算法的验证
- 第十周项目1 — 验证算法(2)二叉树构造算法的验证
- 第十周 项目一 (1)二叉树层次遍历算法的验证
- 第十周项目一 中序线索化二叉树的算法验证(5)
- JS数组的slice()方法传负数和字符串操作函数中的slice()、substr()、substring()
- Android JNI开发小结
- Spring aop事务配置
- 第十一周项目3-图遍历算法实现
- plsql as sysdba登录--报ora-01031的问题
- 【第十周项目1】二叉树算法验证(一)
- eclipse启动报错 could not create the java virtual machine
- 西班牙世界遗产以比特币价格出售
- Stoner Pipeline Simulator v9.7.2(SPS) 输气管道仿真软件\
- Linux apache subversion(SVN)启动脚本(咋个办呢 zgbn)
- 【第七周】项目2-建立链队算法库
- 全球最大保险集团安联推出自保保险产品区块链原型
- Cordoval在iOS中的运用整理
- GCD XOR UVA