编程从键盘输入三个整数其中最大得数_每日一道编程题(421):中国人民大学上机题(二)...

中国人民大学上机题(二)

每日编程中遇到任何疑问、意见、建议请公众号留言或加入每日编程群聊739635399

从文件1输入一个文本,统计其数字(文本中有其他字符),并输出到文件2。

输入格式:

输入一串字符串

输出格式:

统计字符串中数字的个数并输出到文件2中

输入样例:
as6d65s6a
输出样例:
4
4e681f0e03b2b86c378a5f124ff60d5f.gif
解决方法:

(1)代码实现:

//求二叉树的高和最长的路径
#include 
using namespace std;
//定义节点
typedef struct node
{
    struct node *lchild;
    struct node *rchild;
    char data;
} BiTreeNode, *BiTree;
//按照前序顺序建立二叉树
void createBiTree(BiTree &T){
    char c;
    cin >> c;
    if ('#' == c)
        //当遇到#时,令树的根节点为NULL,从而结束该分支的递归
        T = NULL;
    else
    {
        T = new BiTreeNode;
        T->data = c;
        createBiTree(T->lchild);
        createBiTree(T->rchild);
    }
}
/**Find Height
*只要是比较根节点的左子树高度和右子树高度,若左子树高度>右子树高度,那么树的高度为左子树高度+1(其中
*1是要加上根节点的高度);若左子树高度*/
int findHeigth(BiTree root){
    int lHeigt, rHeight;
    if (root == NULL)
        return 0;
    else
    {
        lHeigt = findHeigth(root->lchild);
        rHeight = findHeigth(root->rchild);
        if (lHeigt > rHeight)
            return lHeigt + 1;
        else
            return rHeight + 1;
    }
}
/**Find Longest Path
*算法思想:采用中序遍历非递归的方式,借助一个工作栈,一个辅助栈,工作栈里面存储的元素是中序遍历的
*序列,辅助栈里面则是存储的最长的路径序列
*/
void longest(BiTree T){
    if (T != NULL) //在T不为空的情况下
    {
        cout <data;                                   //访问节点
        if (findHeigth(T->lchild) > findHeigth(T->rchild)) //判断往左走还是往右走
            longest(T->lchild);
        else
            longest(T->rchild);
    }
}
int main(){
    BiTree T; //声明一个指向二叉树根节点的指针
    createBiTree(T);
    cout <"二叉树创建完成!" <endl;
    cout <"前序遍历二叉树:" <endl;
    cout <endl;
    int heigth = findHeigth(T);
    cout <"height=" <endl;
    longest(T);
    system("pause");
    return 0;
}
明日预告:西安电子科技大学上机题(二)

编写一个程序,从键盘输入n个非零常数(0

输入格式:

输入的整数之间以空格分割,输入为0时结束

输出格式:

在一行上从小到大输出计算结果,整数之间用一个空格分割,最后换行

输入样例:
56 12 789 521 0
输出样例:
3 8 11 24
23f46e6e9ab5582c1b2faec996d9306c.png
e5d01cac63313dce35919d778e88e70f.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值