栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

西南交通大学840数据结构编程大题-2021年

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

西南交通大学840数据结构编程大题-2021年

文章目录
      • 第一题
      • 第二题

第一题

1.己知二叉树采用二叉链表存储结构,结点及结点指针数据类型定义如:

typedef struct node {
    int data;
    struct node *Ichild, *rchild;
} BTNode, *BT;

试写出C++算法函数void fmin(BT root, int &min);求二叉树结点data域的最小值存于形参变量min中。其中,root表示二叉树根结点地址。
也可以写出C语言函数void fmin(BT root, int *pmin);
己知int型长度为4字节,则int型可以表示的最大整数为2147483647.
调用时,int min=2147483647;
fmin(root, min); //C++语言
或fmin(root, &min);//C语言
调用结束后,变量min值为二叉树中所有结点data 域的最小值。

#include 
typedef struct node {
    int data;
    struct node *lchild, *rchild;
} BTNode, *BT;
void fmin(BT root, int *pmin) {
    if (root == NULL) return;
    if (root->data < *pmin) *pmin = root->data;
    fmin(root->lchild, pmin);
    fmin(root->rchild, pmin);
}
第二题

2.编写程序,定义一个一维整型数组,从键盘输入10个互不相同的整数,将数组中的最大值与数组中的第一个元素交换,数组中最小值与最后一个元素交换,输出交换后的数组元素。
要求:
(1) main()函数的调用形式如下:

void main() {
    int number[10];
    input(number, 10);
    max_min_change(number, 10);
    output(number, 10);
}

(2)要求数据输入格式为:4,5,1,6,7,9,10,8,3,2
数据的输出格式为:10,5,2,6,7,9.,4,8,3,1
请编写相关函数,完成输入、查找并按要求交换最大和最小值、输出等功能。

#include 

void input(int *number, int n) {
    for (int i = 0; i < n - 1; i++) {
        scanf("%d,", &number[i]);
    }
    scanf("%d", &number[n - 1]);
}
void max_min_change(int *number, int n) {
    int minidx = 0, maxidx = 0;
    for (int i = 1; i < n; i++) {
        if (number[i] < number[minidx]) minidx = i;
        if (number[i] > number[maxidx]) maxidx = i;
    }

    // 交换最大的和第一个两个元素
    int temp = number[maxidx];
    number[maxidx] = number[0];
    number[0] = temp;

    // 交换最大的和第一个两个元素
    temp = number[minidx];
    number[minidx] = number[n - 1];
    number[n - 1] = temp;
}
void output(int *number, int n) {
    for (int i = 0; i < n - 1; i++) {
        printf("%d,", number[i]);
    }
    printf("%d", number[n - 1]);
}
void main() {
    int number[10];
    input(number, 10);
    max_min_change(number, 10);
    output(number, 10);
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/456838.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号