BUAA北京地铁乘坐线路查询 【问题描述】编写一个程序实现北京地铁最短乘坐(站)线路查询,输入为起始站名和目的站名,输出为从起始站到目的站的最短乘坐站换乘线路。注:1. 要求采用Dijkstra算法实现;2)如果两站间存在多条最短路径,找出其中的一条就行。【输入形式】文件bgstations.txt为数据文件(可从课程网站中课程信息处下载),包含了北京地铁的线路及车站信息。其格式如下:<地铁线路总条数><线路1> <线路1站数><站名1> <换乘状态><站
BUAA最少布线(图) 【问题描述】北航主要办公科研楼有新主楼、逸夫楼、如心楼、办公楼、图书馆、主楼、一号楼等等;。北航网络中心计划要给相关建筑物间铺设光缆进行网络连通,请给出用料最少的铺设方案。编写程序输入一个办公区域分布图及建筑物之间的距离,计算出用料最少的铺设方案(只有一组最优解,不用考虑多组解)。要求采用Prim或Kruskal算法实现。【输入形式】办公区域分布图的顶点(即建筑物)按照自然数(0,1,2,n-1)进行编号,从标准输入中首先输入两个正整数,分别表示线路图的顶点的数目和边的数目,然后在接下的行中输入每条
BUAA独立路径数计算 【问题描述】老张和老王酷爱爬山,每周必爬一次香山。有次两人为从东门到香炉峰共有多少条路径发生争执,于是约定一段时间内谁走过对方没有走过的路线多谁胜。给定一线路图(无向连通图,两顶点之间可能有多条边),编程计算从起始点至终点共有多少条独立路径,并输出相关路径信息。注:独立路径指的是从起点至终点的一条路径中至少有一条边是与别的路径中所不同的,同时路径中不存在环路。【输入形式】图的顶点按照自然数(0,1,2,…,n)进行编号,其中顶点0表示起点,顶点n-1表示终点。从标准输入中首先输入两个正整数n,e
BUAA图遍历(图-基本题) 【问题描述】给定一个无向图和一个图顶点,编程输出该图删除给定顶点前后按深度优先遍历及广度优先遍历方式遍历的图顶点序列。给定的无向图和图顶点满足以下要求:1、无向图的顶点个数n大于等于3,小于等于100,输入时顶点编号用整数0~n-1表示;2、无向图在删除给定顶点前后都是连通的;3、无论何种遍历,都是从编号为0的顶点开始遍历,访问相邻顶点时按照编号从小到大的顺序访问;4、删除的顶点编号不为0。【输入形式】先从标准输入中输入图的顶点个数和边的个数,两整数之间以一个空格分隔,然后从下一行开始分行输
BUAA整数排序(排序-基本题) 【问题描述】从标准输入中输入一组互不相同的整数(个数不超过100)及排序方式,按照从小到大排序,输出按某种算法排序的结果及元素的比较次数。说明:排序方式为一个1~5的整数,分别表示:1:选择排序,比较次数是指选择未排序部分的最小元素时的比较次数。2:冒泡排序,比较次数是指相邻元素的比较次数,若某趟排序中没有进行数据交换,就认为排序结束。3:堆排序,比较次数是指根元素调整过程中根元素与子树根结点的比较次数,即下面算法中红色语句的执行次数:void adjust(int k[ ],int i,int
BUAA排座位(简)a 【问题描述】某班级要进行期末考试,准备考试时打乱座次,现已按照学号顺序人工为学生随机安排了座位号,但其中可能会出现漏排和重复安排座位的情况。编写程序读入人工安排的考试座位安排表T1,对安排情况进行检查,并对漏排和重复安排座位的情况进行修正,修正后,若学生人数为N,则每位学生考试座位安排应在1~N之间,其中没有缺号和重号。假设T1中学号信息不会出现重复,同一座位号最多有两位同学的座位号相同,并且座位号不会连续漏排;初始考试座位安排表存放在当前目录下的in.txt中,其中包括每位学生的学号、姓名和座位号,要求修
BUAA单词查找(查找-基本题) 【问题描述】从标准输入中读入一个英文单词及查找方式,在一个给定的英文常用单词字典文件dictionary3000.txt中查找该单词,返回查找结果(查找到返回1,否则返回0)和查找过程中单词的比较次数。查找前,先将所有字典中单词读入至一个单词表(数组)中,然后按要求进行查找。字典中单词总数不超过3500,单词中的字符都是英文小写字母,并已按字典序排好序(可从课件下载区下载该字典文件)。字典中的单词和待查找单词的字符个数不超过20。查找方式说明:查找方式以1~4数字表示,每个数字含义如下:1:在单词表中
BUAA_Huffman编码文件压缩 【问题描述】(选做,与实验题类似,不计分)编写一程序采用Huffman编码对一个正文文件进行压缩。具体压缩方法如下:对正文文件中字符(换行字符’'除外,不统计)按出现次数(即频率)进行统计依据字符频率生成相应的Huffman树(未出现的字符不生成)依据Huffman树生成相应字符的Huffman编码依据字符Huffman编码压缩文件(即按照Huffman编码依次输出源文件字符)。说明:只对文件中出现的字符生成Huffman,注意:一定不要处理,即不要为其生成Huff
BUAA喜鹊筑巢 【问题描述】喜鹊通常会选择一棵树最高处分枝最多(即分枝最多的结点中高度最高的结点)的地方筑巢(结构最稳定)。给定一棵三叉树,计算出喜鹊筑窝的地点(可能有多个,多个时应按树前序遍历的顺序给出相应的结点信息,包括结点号以及按照前序遍历第几个访问到该结点)。例如下图是一颗三叉树:该树中结点最多有三个分枝,拥有三个分枝的最高的结点为23号和15号结点,按照前序遍历顺序将会第19个访问到23号结点,第31个访问到15号结点。要求:按照前序遍历访问三叉树的分枝时应先访问左分枝,再访问中间分枝,最后访问右分枝;根
BUAA计算器(表达式计算-表达式树实现) 【问题描述】从标准输入中读入一个整数算术运算表达式,如24 / ( 1 + 2 + 36 / 6 / 2 - 2) * ( 12 / 2 / 2 )= ,计算表达式结果,并输出。要求:1、表达式运算符只有+、-、*、/,表达式末尾的=字符表示表达式输入结束,表达式中可能会出现空格;2、表达式中会出现圆括号,括号可能嵌套,不会出现错误的表达式;3、出现除号/时,以整数相除进行运算,结果仍为整数,例如:5/3结果应为1。4、要求采用表达式树来实现表达式计算。表达式树(expression tree
BUAA词频统计(树实现) 【问题描述】编写程序统计一个英文文本文件中每个单词的出现次数(词频统计),并将统计结果按单词字典序输出到屏幕上。要求:程序应用二叉排序树(BST)来存储和统计读入的单词。注:在此单词为仅由字母组成的字符序列。包含大写字母的单词应将大写字母转换为小写字母后统计。在生成二叉排序树不做平衡处理。【输入形式】打开当前目录下文件article.txt,从中读取英文单词进行词频统计。【输出形式】程序应首先输出二叉排序树中根节点、根节点的右节点及根节点的右节点的右节点上的单词(即root、root->
BUAA树叶节点遍历(树-基础题) 【问题描述】从标准输入中输入一组整数,在输入过程中按照左子结点值小于根结点值、右子结点值大于等于根结点值的方式构造一棵二叉查找树,然后从左至右输出所有树中叶结点的值及高度(根结点的高度为1)。例如,若按照以下顺序输入一组整数:50、38、30、64、58、40、10、73、70、50、60、100、35,则生成下面的二叉查找树:从左到右的叶子结点包括:10、35、40、50、60、70、100,叶结点40的高度为3,其它叶结点的高度都为4。【输入形式】先从标准输入读取整数的个数,然后从下一行开始输
BUAA银行排队模拟(生产者-消费者模拟) 【问题描述】一个系统模仿另一个系统行为的技术称为模拟,如飞行模拟器。模拟可以用来进行方案论证、人员培训和改进服务。计算机技术常用于模拟系统中。生产者-消费者(Server-Custom)是常见的应用模式,见于银行、食堂、打印机、医院、超等提供服务和使用服务的应用中。这类应用的主要问题是消费者如果等待(排队)时间过长,会引发用户抱怨,影响服务质量;如果提供服务者(服务窗口)过多,将提高运管商成本。(经济学中排队论)假设某银行网点有五个服务窗口,分别为三个对私、一个对公和一个外币窗口。银行服务的原则是先来
BUAA文本编辑操作模拟(简)a 【问题描述】编写一程序模拟文本编辑操作。首先从标准输入读取一行字符串(字符个数不超过512),该行字符串是已经过n(大于0,小于等于10)步编辑操作后的结果。然后从下一行读取n,以及已发生过的n步编辑操作,编辑操作分行输入,输入格式为:op pos str其中op为编辑操作命令编码(在此只有插入和删除操作,1表示插入或2表示删除操作);pos表示插入或删除的位置;str表示已经插入或删除的字符串(中间没有空格)。各数据间以一个空格分隔。然后在空一行后,再分行输入当前将要进行的编辑操作,包括如下四种操
BUAA计算器(表达式计算-后缀表达式实现) 【问题描述】从标准输入中读入一个整数算术运算表达式,如24 / ( 1 + 5%3 + 36 / 6 / 2 - 2) * ( 12 / 2 / 2 )= ,计算表达式结果,并输出。要求:1、表达式运算符只有+、-、*、/、%,表达式末尾的=字符表示表达式输入结束,表达式中可能会出现空格;2、表达式中会出现圆括号,括号可能嵌套,不会出现错误的表达式;3、出现除号/时,以整数相除进行运算,结果仍为整数,例如:5/3结果应为1。4、要求采用逆波兰表达式来实现表达式计算。【输入形式】从键盘输入一个
BUAA_C程序括号匹配检查 【问题描述】编写一程序检查C源程序文件中{}、()等括号是否匹配,并输出第一个检测到的不匹配的括号及所对应括号所在的行号(程序中只有一个括号不匹配)。注意:1.除了括号可能不匹配外,输入的C源程序无其它语法错误。2.字符常量、字符串常量及注释中括号不应被处理,注释包括单行注释//和多行/* */注释3.字符常量和字符串常量中不包含转义字符’和";4.程序中出现有意义括号的个数不超过200个;不匹配判断规则:1.当检测的程序括号为’{‘时,若其前序尚未匹配的括号为’(‘时,输出该’('左括号及
BUAA栈操作(栈-基本题) 【问题描述】假设给定的整数栈初始状态为空,栈的最大容量为100。从标准输入中输入一组栈操作,按操作顺序输出出栈元素序列。栈操作:1表示入栈操作,后跟一个整数(不为1、0和-1)为入栈元素;0表示出栈操作;-1表示操作结束。【输入形式】从标准输入读取一组栈操作,入栈的整数和表示栈操作的整数之间都以一个空格分隔。【输出形式】在一行上按照操作的顺序输出出栈元素序列,以一个空格分隔各元素,最后一个元素后也要有一个空格。如果栈状态为空时进行出栈操作,或栈满时进行入栈操作,则输出字符串“error”,并且字符
BUAA词频统计(数组或链表实现) 【问题描述】编写程序统计一个英文文本文件中每个单词的出现次数(词频统计),并将统计结果按单词字典序输出到屏幕上。注:在此单词为仅由字母组成的字符序列。包含大写字母的单词应将大写字母转换为小写字母后统计。【输入形式】打开当前目录下文件“article.txt”,从中读取英文单词进行词频统计。【输出形式】程序将单词统计结果按单词字典序输出到屏幕上,每行输出一个单词及其出现次数,单词和其出现次数间由一个空格分隔,出现次数后无空格,直接为回车。【样例输入】当前目录下文件article
BUAA文件加密(环) 【问题描述】有一种文本文件加密方法,其方法如下:1、密钥由所有ASCII码可见字符(ASCII码编码值32-126为可见字符)组成,密钥长度不超过32个字符;2、先将密钥中的重复字符去掉,即:只保留最先出现的字符,其后出现的相同字符都去掉;3、将不含重复字符的密钥和其它不在密钥中的可见字符(按字符升序)连成一个由可见字符组成的环,密钥在前,密钥的头字符为环的起始位置;4、设原密钥的第一个字符(即环的起始位置)作为环的开始位置标识,先从环中删除第一个字符(位置标识则移至下一个字符),
BUAA多项式相乘 【问题描述】编写一个程序实现两个一元多项式相乘。【输入形式】首先输入第一个多项式中系数不为0的项的系数和指数,以一个空格分隔。且该多项式中各项的系数均为0或正整数,系数和最高幂次不会超过int类型的表示范围。对于多项式 anxn +a n-1 x n-1 + … + a1x1 + a0x0 的输入方法如下:an n a n-1 n-1 … a1 1 a0 0即相邻两个整数分别表示表达式中一项的系数和指数。在输入中只出现系数不为0的项。最后一项的指数后没有空格,只有一个回车换行符。按