(PTA)实验5

感兴趣的小伙伴可以先看看我的这篇文章哦,打开看看,说不定能帮到你一些~~

金陵科技学院软件工程学院软件工程专业

7-1 建立与遍历二叉树 (35 分)
以字符串的形式定义一棵二叉树的先序序列,若字符是‘#’, 表示该二叉树是空树,否则该字符是相应结点的数据元素。读入相应先序序列,建立二叉链式存储结构的二叉树,然后中序遍历该二叉树并输出结点数据。
输入格式:
字符串形式的先序序列(即结点的数据类型为单个字符)
输出格式:
中序遍历结果
输入样例:
在这里给出一组输入。例如:
ABC##DE#G##F###
结尾无空行
输出样例:
在这里给出相应的输出。例如:
CBEGDFA
结尾无空行

实现代码:

#include <stdio.h>
#include <stdlib.h> 
typedef struct BitNode{
    char data;
    struct BitNode *lchild;
    struct BitNode *rchild;
}BitNode, *BinTree;
void CreateBinTree(BinTree *bt){
    char ch;
    if ((ch = getchar()) == '#') {
         *bt = NULL;
    }else{
        *bt = (BitNode *)malloc(sizeof(BitNode));
        (*bt)->data = ch;
        CreateBinTree(&(*bt)->lchild);
        CreateBinTree(&(*bt)->rchild);
    }
}
void InOrderTraversal(BinTree *bt){
    if (*bt != NULL){
        InOrderTraversal(&(*bt)->lchild);
        printf("%c", (*bt)->data);
        InOrderTraversal(&(*bt)->rchild);
    }
}
int main(){
    BinTree T;
    CreateBinTree(&T);
    InOrderTraversal(&T);
    return 0;
}

7-3 还原二叉树 (35 分)
给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。
输入格式:
输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。
输出格式:
输出为一个整数,即该二叉树的高度。
输入样例:
9
ABDFGHIEC
FDHGIBEAC
结尾无空行
输出样例:
5
结尾无空行

实现代码:

#include <stdio.h>
int max(int a,int b){
    return a > b ? a : b;
}
int GetHeight(char* pre,char* in,int n) {
    if (n == 0) return 0;
    int i = n;
    while (--i)
           if (pre[0] == in[i])
               break;
    return max(GetHeight(pre + 1,in,i),GetHeight(pre + i + 1,in + i + 1,n - i - 1)) + 1;
}
int main() {
    int n;
    char pre[51],in[51];
    scanf("%d",&n);
    scanf("%s",pre);
    scanf("%s",in);
    printf("%d",GetHeight(pre,in,n));
    return 0;
}
山东理工大学PTA实验八通常是指在计算机科学与技术专业课程中,学生需要完成的一个编程实践任务。PTA(Programming Teaching Assistant)是一个在线编程练习和自动评测系统,广泛用于高校的编程教学和实验。以下是实验八的一些常见内容和目标: 1. **实验目的**: - 巩固学生对某一编程语言(如C、C++、Java等)的掌握。 - 提高学生解决实际问题的能力。 - 培养学生的编程思维和算法设计能力。 2. **实验内容**: - **题目描述**:实验八通常会包含多个编程题目,每个题目都有详细的问题描述和输入输出格式。 - **输入输出**:学生需要根据题目要求编写程,读取输入数据并输出正确结果。 - **测试用例**:系统会提供多个测试用例,学生需要确保程在所有测试用例下都能正确运行。 3. **实验步骤**: - **理解题目**:仔细阅读题目,确保理解题目的要求和输入输出格式。 - **设计算法**:根据题目要求设计算法,确定数据结构和处理流程。 - **编写代码**:使用选定的编程语言编写代码,实现算法。 - **测试调试**:在本地环境中测试代码,确保程正确运行,并调试发现的错误。 - **提交代码**:将代码提交到PTA系统,等待系统自动评测。 4. **实验要求**: - **代码规范**:编写符合规范的代码,注释清晰,变量命名合理。 - **时间复杂度**:尽量优化算法,确保程在规定时间内完成。 - **间复杂度**:合理使用内存,避免不必要的间浪费。 5. **实验提交**: - **提交方式**:通过PTA系统提交代码,系统会自动评测并给出结果。 - **评测结果**:系统会给出每个测试用例的通过情况,学生可以根据反馈进行修改。 通过完成实验八,学生可以进一步提升自己的编程能力,掌握解决实际问题的技巧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Spiderman_94

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值