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

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

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

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

第一题

1.编写一个程序,实现的功能是:首先从键盘的终端上输入10 个数序存放于数组a中,然后输入一个数x,并查找x是否在数组中,若在数组中,则输出在数组中的元素序号,否则给出未查找到的信息。要求查找过程用一函数来实现。


#include 
int find(int x, int arr[], int n) {
    for (int i = 0; i < n; i++) {
        if (arr[i] == x) return i;
    }
    return -1;
}

int main() {
    int n = 10, arr[n], x;
    for (int i = 0; i < n; i++)
        scanf("%d", &arr[i]);
    scanf("%d", &x);
    int idx = find(x, arr, n);
    if (idx != -1)
        printf("%dn", idx);
    else
        printf("not find");
    return 0;
}
第二题

1、输入一个四位正整数, 然后按数字的相反次序输出。如:输入9187,则输山: 7819
又如: 输入为7000,则输出为: 0007。
要求:只能用一个整型变量接收键盘输入。

#include 

int main() {
    int a;
    scanf("%d", &a);
    while (a) {
        printf("%d", a % 10);
        a /= 10;
    }
    return 0;
}
第三题

3.若二叉树结点指针类型定义如下:

typedef struct bt_node {
    int data;
    struct bt_node *lchild, *rchild;
} BiTNode, *BiTree;

// 下面C++ 函数用先根遍历算法复制一棵二叉树设原来的二叉树根为t, 复制的二叉树根为bt,请填空。

BiTree Copy(BiTree t) { //复制二叉树t
    BiTree bt;
    if (__________)
        bt = NULL;
    else {
        __________________;
        __________________;
        bt->lchild = Copy(t->lchild);
        bt->rchild = Copy(t->rchild);
    }
    __________________;
} // 结束copy

#include 
#include 
//3.若二叉树结点指针类型定义如下:

typedef struct bt_node {
    int data;
    struct bt_node *lchild, *rchild;
} BiTNode, *BiTree;

// 下面C++ 函数用先根遍历算法复制一棵二叉树设原来的二叉树根为t, 复制的二叉树根为bt,请填空。

BiTree Copy(BiTree t) { //复制二叉树t
    BiTree bt;
    if (t == NULL)
        bt = NULL;
    else {
        bt = (BiTree)malloc(sizeof(BiTree));
        bt->data = t->data;
        bt->lchild = Copy(t->lchild);
        bt->rchild = Copy(t->rchild);
    }
    return bt;
} // 结束copy
第四题

4.假设称正读和反读都是相同的字符序列为“回文”,例如“abba”和“abcba”是回文,“abcde”
和“ababab"则不是回文。试写一个算法判别读入的一个以’@’为结束符的字符序列是否为回文。


#include 
int is_huiwen(char *str, int n) {
    int i = 0, j = n - 1;
    while (i < j && str[i] == str[j])
        i++, j--;
    return i >= j;
}
int main() {
    char str[100], ch = 0;
    int n = 0;
    while ((ch = getchar()) != '@') {
        str[n++] = ch;
    }
    if (is_huiwen(str, n))
        puts("Yes");
    else
        puts("No");

    return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/429779.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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