c++数据结构
罗切斯特的魔法斗篷
这个作者很懒,什么都没留下…
展开
-
求回文字符串
1、输入一个只含有英文字母的字符串,输出最大回文子串的长度及此长度回文子串的个数(回文不区分大小写)。样例:输入aBaAb (最大回文子串为BaAb) 输出4 1 输入aBcbBb (最大回文子串为Bcb和bBb) 输出 3 2实际测试样例: 输入:a B 输出: 1 2 输入:a...原创 2020-03-22 21:23:15 · 489 阅读 · 0 评论 -
2016年北理复试上机题
输入学生信息,姓名 成绩(成绩的数目不一定)输出每个学生的学号和平均成绩,以及不及格课程数超过2的学生,按不及格课程数从大到小排好序输出。这道题目按照正常的思路做即可,就是题中输入结束的条件基本没有,因此我这里按照一定的规则将数据输入。1以00结束大循环的输入,2以-1结束成绩的输入。#include<iostream>#include<string>#incl...原创 2020-03-11 21:53:12 · 272 阅读 · 0 评论 -
中缀表达式转后缀表达式或者前缀表达式
给出一串中缀表达式,1+((2+3)4)-5转成前缀- + 1 * + 2 3 4 5,或者转为后缀123+45-+,其实转成前缀或者后缀思路是一样的,首先对字符串从左到右遍历设定优先级,±为1,*/为2,括号为0,以转化成前缀表达式为例,前缀的话对输入字符串要从右到左扫描,而后缀刚好相反,是从左到右扫描,遇到数字直接压入结果栈,遇到算符就和算符栈的栈顶元素进行优先级比较,如果算符栈顶的优先级高...原创 2020-03-08 09:34:05 · 281 阅读 · 0 评论 -
北理2012年复试上机题第二题
2.学生有(学号,姓名,性别,年龄),初始化三个学生信息(10,wes,f,23)(20,ert,f,45)(30,str,t,89),然后对学生信息进行插入和删除处理例如:I12,rt,f,67表示插入12,rt,f,67D10表示删除学号为10的学生信息每次操作完成后输出所有学生的信息按学号从大到小排序输入:I12,rt,f,67输出(30,str,t,89),(20,erf,f,4...原创 2020-03-02 17:35:33 · 191 阅读 · 0 评论 -
2012年北理复试上机题第一题
输入十个正整数数字,从小到大排序输入:1,2,5,7,9,10,45,67,24,26输出:1,2,5,7,9,10,24,26,45,67这个题问题在于它输入的整数位数不定,因此我们只能将字符串按照逗号分隔开以后再将短字符串转化为int型的。进行int的sort排序#include<iostream>#include<vector>#include<al...原创 2020-03-02 12:45:55 · 210 阅读 · 0 评论 -
给定字符串输出领导关系
题目:给定一个字符串(aaaa(bbbb(cccc,dddd),eeee(ffff))该字符串表明的是各个人的层次关系,比如aaaa是bbbb和eeee的领导,bbbb是cccc和dddd的领导。现输入一个名称,比如ffff,要求输出其领导关系输出:aaaa>eeee>ffff本题的解题思路不好想,既有逗号又有括号,实质上是和括号有关系,遇到右括号时flag–遇到左括号flag++...原创 2020-03-01 21:49:21 · 110618 阅读 · 2 评论 -
读出一个句子中英文单词的个数并输出重复的次数和单词
输入一个英文句子,把句子中的单词按出现次数按从多到少把单词和次数在屏幕上输出来,要求能识别英文句号和逗号,暂不要求识别其他符号。这道题如果不用map的话很难解决,像这种题目就可以用第一个参数为string第二个参数计数的map,然后从开始到空格或者逗号或者句号统计一个单词存入map中,每次取map集合的最大值输出单词和对应的次数。#include<iostream>#includ...原创 2020-02-28 22:57:24 · 2157 阅读 · 0 评论 -
先输入一组数,然后输入其分组,按照分组统计出现次数并输出
例如,输入数据3,2,3,8,8,2,3输入对应分组 1,2,3,2,1,3,1输出:1={2=0,3=2,8=1}2={2=1,3=0,8=1}3={2=1,3=1,8=0}即每组中各数据出现的次数。本题既然有分组,就可以考虑使用map,每一组存储的都是结构体map<int,int>,本体出现的次数既是结构体中第二个int的值,第一个int为组号,第二个int为数...原创 2020-02-28 17:43:43 · 1390 阅读 · 0 评论 -
2008年北理复试上机题计算年月日间隔
设计一个程序能计算日期的间隔,如输入两个日期分别为2008-2-3和2008-3-9计算相隔多少天,或2008-2-3加上100天后的日期是多少。本题解题思路,一开始想让两者直接相减,这是没有使用计算机思维导致的结果,如果用计算机思维就是从开始时间到结束时间一天一天加, 只需要写一个加一天的函数就可以。#include<iostream>using namespace std;...原创 2020-02-28 13:34:47 · 304 阅读 · 0 评论 -
2007年北理复试上机题编程实现学生信息的输入、查询、浏览,其中浏览分为:升序和降序两种
请自定义一个Student类,属性包括,Char name[10],int num。编程实现学生信息的输入、查询、浏览,其中浏览分为:升序和降序两种这个题目在历年真题中经常出现,直接上代码:#include<iostream>#include<vector>#include<math.h>#include<algorithm>#inclu...原创 2020-02-27 14:45:16 · 173 阅读 · 0 评论 -
2007年北理机试三角形类判断是否是直角三角形
2.创建一个CPoint类,代表平面直角坐标系中的点,创建构造函数和运算符重载函数,运算符重载为类重载(非友元重载),可以实现计算两个点之间的距离。可以根据需要加入自己的成员变量或成员函数。要求:(1)输入两个点的坐标,输出两个点之间的距离。(2)重载运算符为“-”。3.创建一个CTriangle类,需要用到第二题中创建的类,即用3点来代表一个三角形,输入三个点的坐标,实现判断此三角形是不是直...原创 2020-02-26 10:06:59 · 333 阅读 · 0 评论 -
北理上机,变量反转
写一个类,能接受 int 型的变量,接收变量后能存储原变量(譬如 12345)和其反向变量(54321),最多处理数量为 10 个,当输入达到 10 个或者输入变量为 0 的时候停止。并且在类销毁前输出存储的所有变量。例如:输入:12345,2234,0输出:12345 543212234 4322本题思路从两个类,能接受和存储int变量,可以推出编写一个类,存储两个vector类型的...原创 2020-02-25 20:16:58 · 204 阅读 · 0 评论 -
邮票价格
某人有 8 角的邮票 5 张,1 元的邮票 4 张,1元 8 角的邮票 6 张,用这些邮票中的一张或若干张可以得到多少种不同的邮资?分析思路,此题就是暴力搜索,没有什么捷径,但是输入的时候每次 都要对这些邮票的价格进行去重,所以我们可以选择用set容器来存储,这样可以实现去重。但是如果以元为单位,出现浮点数,比较起来不精确会有重复的数据出现,所以要以角为单位。#include<iost...原创 2020-02-23 21:21:46 · 317 阅读 · 0 评论 -
输出斐波那契三角数列
编写一个求菲波那奇数列的递归函数,输入 n值,使用该递归函数,输出如下图形。例如:当n=6时。 0 0 1 1 0 1 1 2 3 0 1 1 2 3 5 8 0 1 1 2 3 5 8 13 210 1 1 2 3 5 8 13 21 34 55该题目看起来比较复杂,仔细观察还是打印三角形的变式,每一行...原创 2020-02-23 18:34:44 · 552 阅读 · 0 评论 -
请编写一个程序,从键盘上输入 n(n 的范围是1~20),求 n 的阶乘。
本题初看没有什么问题,但是如果用int编程的话,输入20的时候数据会溢出,所以我们这里采用long long 的类型来编写。#include<iostream>using namespace std; int main(){ long long n,s=1; cout<<"请输入数据,范围 1-20:"<<endl; cin&g...原创 2020-02-23 18:04:19 · 1520 阅读 · 0 评论 -
环状链表练习
N 个人围成一圈顺序编号,从 1 号开始按 1、2、 3 顺序报数,报 3 者退出圈外,其余的人再从 1、2、 3 开始报数,报 3 的人再退出圈外,依次类推。请按退出顺序输出每个退出人的原序号。要求使用环形链表编程。这道题是学校常出的编程练习题,现在读来感受不同,从之前用的malloc函数到现在直接用new给结构体分配存储空间,效率提高了很多。但是题目的理解可能会出现偏差,因为题目中并没有明...原创 2020-02-23 16:17:45 · 324 阅读 · 0 评论 -
数据读入txt读出txt并对结构体进行排序
从键盘输入 4 个学生的数据( 包括姓名、年龄和成绩),并存放在文件 sf1 上。从该文件读出这些数据,按成绩从高到底排序,并输出其中成绩次高者的所有数据。#include<iostream>#include<fstream>#include<string>#include<vector>#include<algorithm>...原创 2020-02-23 15:10:11 · 752 阅读 · 1 评论 -
北京理工大学2000年复试上机题
北京理工大学2000年复试上机题一个数如果恰好等于它的各因子(该数本身除外)子和,如: 6=3+2+1,则称其为“完数”;若因子之和大于该数,则称其为“盈数”。求出 2 到 60 之间所有“完数”和“盈数”,并以如下形式输出: E: e1 e2 e3 …(ei 为完数) G: g1 g2 g3 …(gi 为盈数) 。该题为简单题,因为无输入,思路简单。创建两个数组分别储存完数和盈数,从2到60...原创 2020-02-11 16:02:21 · 190 阅读 · 0 评论 -
优先队列
大学以来一直听闻优先队列,只是知道个大概不知道具体是怎么用的。今天终于横下心来实现一波优先队列,整体上看了一遍书上的思路就基本明白了优先队列的思想,然后水到渠成地敲出了一个优先队列,也没有遇到多少难缠的bug,学到了一个很好的移动线性表的方法。在考试之前我们所有的一切都是新东西,遇到一个新题目首先去尝试自己想,想不出来立马清空脑袋,接受全新的解题思路,不要尝试用现有的知识去推导新的题目,就像大二的...原创 2019-04-11 17:41:27 · 168 阅读 · 0 评论 -
循环队列
真的是眼高手低,看起来很简单的循环队列,做起来也是会有疏忽,起码越来越熟练了,加油。纸上得来终觉浅,绝知此事要躬行!circlequeue.h#pragma oncetemplate<class T>class circlequeue {private: T *q; int size, front, rear;public: circlequeue(int siz);...原创 2019-04-11 15:21:53 · 131 阅读 · 0 评论 -
链式栈
之前一直都是用c语言实现的链表,今天看到c++实现的链表,不禁跃跃欲试,虽然参考着书,但是也是半脱稿,能自己码多少就码多少,日后再重新码一边。话说c++是真的适合用来描述数据结构。LStack.h:#pragma once#include<assert.h>template<class T>class LStack;//事先声明一波,为了创建友元类template...原创 2019-04-10 23:25:49 · 146 阅读 · 0 评论 -
doubleStack的实现
1.做了这个程序,实在是吐血,坑爹坑爹,因为要使用模板类,在vs中模板类的声明与实现一般我是分开用.h和.cpp文件分别实现的。模板类实际上不能声明与实现分开,后来在网上找到一篇博客,终于明白了QAQ分开的时候一直报错:错误 LNK1120 1 个无法解析的外部命令 双栈共用存储空间 d:\documents\visual studio 2015\Projects\双栈共用存储空间\Debug\...原创 2019-04-10 18:42:58 · 810 阅读 · 0 评论 -
用c++实现一个简单栈
本文是在vs环境下用c++实现栈的操作公司面试有时也会考栈的基本操作,因此基本功一定要打扎实编写头文件按照复旦大学c++课件教程编写栈的定义,编写一个Stack.h文件下面是代码#pragma once#include<iostream>using namespace std;template <typename Type>//模板函数,有效区域该声明下...原创 2019-04-10 16:34:59 · 8776 阅读 · 0 评论