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

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

西南交通大学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;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5098977.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存