ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-11-06 00:00:51  阅读:239  来源: 互联网

标签:locate 结点 840 int BiTree 大题 bt key 2014


四、程序与算法设计题(30分,共3小题,每小题10分)(答在试卷上的内容无效)重要说明:此题允许使用C++语言作答。

第一题

1、用如下公式计算πI的近似值。要求计算到最后一项绝对值小于 1 0 − 6 10^{-6} 10−6时停止计算;输出结果保留4位小数。(10 分)

π 4 = 1 − 1 3 + 1 5 − 1 7 + 1 9 − … \frac{\pi}{4}=1-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+\frac{1}{9}-\dots 4π​=1−31​+51​−71​+91​−…

#include <stdio.h>
#define exp 1e-6
int main() {
    double flag = 1, sum = 0;
    int fm = 1;
    while (1.0 / fm > exp) {
        sum += flag / fm;
        flag = -flag;
        fm += 2;
    }
    printf("pi = %.4lf", 4 * sum);
}

第二题

2、编程打印如下字符图形到屏幕上和字符文件7a1.txt中。打印图形前,要求打印行数n (1<=n<=9)由键盘输入(10分)

1
1 2
1 2 3
1 2 3 4 
1 2 3 4 5      (n=5时图形)
#include <stdio.h>

int main() {
    int n;
    scanf("%d", &n);
    FILE *fp = fopen("a1.txt", "w");
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= i; j++)
            printf("%d ", j), fprintf(fp, "%d ", j);
        putchar('\n'), putc('\n', fp);
    }
    return 0;
}

第三题

3、若二叉树采用二叉链表存储结构,其结点及结点指针数据类型定义如第二大题第17小题所示。已知二叉树根结点地址bt以及某字符key,写一个算法,在二叉树中查找字符key所在结点。已知二叉树各结点data域值无重复。若查找成功,返回key所在结点地址;否则,返回NULL。(10 分)

typedef struct node {
    char data;
    struct node *lchild, *rchild;
} BiTNode, *BiTree;
其中,lchild 和rchild分别表示结点的左子树和右子树根结点地址

提示:利用先序递归遍历算法;函数原型建议采用如下两种形式之一一。
(1) 函数原型
BiTree locate(BiTree bt,char key);
函数调用格式为: BiTree p = locate(bt,key);
(2)函数原型二
void locate (BiTree bt,char key, BiTree *p);/C语言/
void locate (BiTree bt,char key, BiTree &p); /C++语言/
函数调用格式为:
BiTree p = NULL;
Locate(bt,key,&p);/C语言/
Locate(bt,key,p); /C 语言/

#include <stdio.h>
typedef struct node {
    char data;
    struct node *lchild, *rchild;
} BiTNode, *BiTree;

void locate(BiTree bt, char key, BiTree *p) {
    if (bt == NULL) return;
    if (bt->data == key) {
        p = bt;
        return;
    }
    locate(bt->lchild, key, p);
    if (p == NULL)
        locate(bt->rchild, key, p);
}

标签:locate,结点,840,int,BiTree,大题,bt,key,2014
来源: https://blog.csdn.net/zdw20190510/article/details/121172948

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有