数据结构课程设计题目四_二叉树

来源:互联网 发布:福建广电网络收费价格 编辑:程序博客网 时间:2024/04/30 08:01

本文出自:http://blog.csdn.net/svitter

题目4:二叉树

给出一颗无线的二叉树。树的每一个结点用一整数对标识。二叉树构造如下
树根被标识为(1, 1);

如果一个结点被标识为(a, b), 则其左孩子被标识为(a+b,b),右孩子被标识为(a, a+b)。现在给出某一结点(a, b),求树根到该结点的最短路径,并且同时求出从树根出发向左走和向右走的次数。建议完成人数1人。

注:此处使用了STL_stack库函数,是不允许的,我图方便。


//============================================================================// Name        : BinaryTree.cpp// Author      : Vit// Version     : 1.0// Copyright   : Your copyright notice// Description : Hello World in C++, Ansi-style//============================================================================#include <iostream>#include <stdio.h>#include <stack>using namespace std;struct path{int a;int b;path(int c, int d):a(c), b(d){}void print(){printf(" (%d, %d)", a, b);}};int main(){int left, right;int a, b;stack <path> s;while(~scanf("%d%d", &a, &b )){if(a == b && a != 1){printf("impossible\n");continue;}right = left = 0;while(a != b){if(a > b){left++;s.push(path(a,b));a = a - b;}else{right++;s.push(path(a,b));b = b - a;}}printf("left_num: %d\nright_num:%d\n", left ,right);printf("(1,1)");while(!s.empty()){path b = s.top();s.pop();b.print();}printf("\n\n");}return 0;}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 常州住房公积金查询 遂宁市住房公积金管理中心 天津市住房公积金管理中心 湖南住房公积金查询个人账户 深圳住房公积金电话 住房公积金查询网 洛阳住房公积金 呼和浩特住房公积金查询 青海省住房公积金查询 郑州住房公积金管理中心 苏州住房公积金查询 成都住房公积金查询个人账户 住房公积金中心电话 昆山住房公积金管理中心 吉林市住房公积金查询 沈阳住房公积金 沈阳住房公积金管理中心 贵港市住房公积金管理中心 萍乡住房公积金查询 郑州市住房公积金 赣州市住房公积金管理中心 济南住房公积金查询 济宁市住房公积金个人查询 西安住房公积金查询网 西安市住房公积金中心 西安市住房公积金 西安市住房公积金管理中心 西安市个人住房公积金查询 个人住房公积金查询个人账户 西安住房公积金个人帐户查询 住房公积金账户 查询住房公积金个人账户余额 怎么查询住房公积金 个人住房公积金 怎样查询住房公积金账户余额 西安个人住房公积金查询 住房公积金怎么用 住房公积金个人查询 提住房公积金条件 自住房申请条件 住房公积金咨询