c++
小司不爱睡觉
这个作者很懒,什么都没留下…
展开
-
CINTA 整数与二进制1
2,给定一个整数V,如何判断V是否为2的某次方,比如,v=4=2^2,返回true;v=9=2^3+1并非2的次方,返回false,请写一个c语言的函数来实现以上功能注:算法的核心思路在于对整除和最后结果是否为1进行判断;3用c语言编程实现一种迭代算法的简单乘法4证明命题1.1,即证明设a,b,c∈Z,如果a|b,b|c,则a|c,如果c|a,c|b,则对于任意m,n∈Z,有c|(ma+nb).证明:(1)假设a,b,c∈Z,如果a|b,b|c,由除法算法得存在k1,k2∈Z,且原创 2022-12-07 09:33:23 · 361 阅读 · 0 评论 -
单链表合并
设ha和hb分别是两个带附加节点的非递减有序单链表的表头指针,试设计一个算法,将这两个有序链表合并成一个非递增的有序的单链表,要求结果链表仍使用原来的空间,不占用其他的储存空间,表中允许有重复的元素;原创 2022-11-22 22:30:03 · 852 阅读 · 0 评论 -
顺序表合并
1设有两个整数类型的顺序表a和b其元素均以从小到大的顺序排列,试着编写一个函数,将两个顺序合成一个顺序表c要求c的元素也按照从小到大升序排列;将两个顺序表中的元素进行比较从头节点开始,不断取下结点比较小的数存到新的顺序表中,比较完后,将两个顺序表中还有剩余的顺序表元素添加进新的顺序表。原创 2022-11-22 22:00:02 · 2083 阅读 · 0 评论 -
数据结构习题(单链表)
LinkNode *LIst::max()//找到则返回地址,所以返回类型为结点类型。LinkNode*List::Search(int i)//返回类型。if(p->data>m->data)//在遍历中每次与最大的结点进行比较。LinkNode *tidyup(List&L)//传入参数。if(p->next->data==same)//找到就删除。原创 2022-11-22 19:02:17 · 941 阅读 · 0 评论 -
数据结构习题(顺序表)
SeqList merge(SqList a,SqList b,SqList &c)//传入线性表 a,b。if(iL->Length+1||L->Length>=MaxSize)//条件判断。if(i=L->Length||L->Length==0)//判断条件。if(L.data[i]>=s&&L.data[i]=t||L.Length==0)//空表且不满足的情况判断。原创 2022-11-22 17:37:18 · 1234 阅读 · 0 评论 -
数据结构(线性表习题1)
p是个int[6](而不是int*) ,sizeof(*p)是24而不是4 ,也就是说在堆上创建了一个int[6],但这个空间是在运行期分配的。(3)数组是一种静态的储存空间分配,就是说,在程序设计过程中必须预先定义数组的数据类型和储存空间的大小,由编译程序在编译时进行分配;选链式存储结构,可以动态申请空间,不受表长度的限制,表中插入,删除操作的时间复杂度为O(1)=(1/n)((0+n-1)*n)/2 (等差数列求和公式的应用)错,数组存储只是顺序存储中的最简单的方式,不能将两者描述为相同;原创 2022-11-20 19:34:46 · 1172 阅读 · 0 评论 -
静态链表类模板实现(带测试代码)
cout原创 2022-10-27 00:15:24 · 187 阅读 · 0 评论 -
链式队列(附带测试代码)
cout原创 2022-10-19 20:10:40 · 239 阅读 · 0 评论 -
费马小定理和欧拉定理
若a1≠a2, a1,a2∈A,且γa1≡γa2≡1(mod p),因,γa1,γa2∈B,而B中的元素关于mod p不同余,可见a1≠a2,则γ1≠γ2。p为素数,任取1原创 2022-10-19 00:00:00 · 1286 阅读 · 0 评论 -
模指数运算(c++)
cout原创 2022-10-14 00:00:00 · 459 阅读 · 0 评论 -
链式栈类模板实现(c++)
LinkNode*List::Search(T x) //有点不太清除这里的函数类型选择。LinkNode*getHead()const //类内定义的方式。cout原创 2022-10-07 15:46:06 · 845 阅读 · 0 评论 -
类模板实现顺序栈(已测试)
//先建立新的数组,开辟更大的空间,调整完参数后,删除之前的数据,对当前的数据进行复制//先建立新的数组,开辟更大的空间,调整完参数后,删除之前的数据,对当前的数据进行复制。cout原创 2022-10-07 12:54:30 · 369 阅读 · 0 评论 -
每日leetcode[杨辉三角]
/序列式容器的函数。原创 2022-10-04 22:44:01 · 402 阅读 · 0 评论 -
每日leetcode[合并两个有序数组]
每日leetcode[合并两个有序数组]原创 2022-10-04 13:03:32 · 118 阅读 · 0 评论 -
每日leetcode[删除排序链表中的重复元素]
每日leetcode[删除排序链表中的重复元素]原创 2022-10-04 12:37:16 · 422 阅读 · 0 评论 -
单链表(c++类模板实现)
c++类模板实现单链表原创 2022-09-27 18:01:29 · 1320 阅读 · 0 评论 -
顺序表(c++类模板实现)
顺序表(c++类模板实现)原创 2022-09-21 18:13:04 · 568 阅读 · 0 评论 -
每日leetcode[爬楼梯]
Leetcode 爬楼梯原创 2022-09-17 09:03:47 · 109 阅读 · 0 评论 -
每日leetcode[二进制求和]
题目要求返回二进制表示的数字,所以要观察两个二进制数相加的规律,是逢二进一,分为进位和本位和,由于字符串索引是从低位到高位,即从左向右,而二进制数的低位在右边,所以首先要对二进制数进行翻转,然后从低位开始遍历求和,注意两个二进制数可能不是同位数的,要取数字最大的长度,从低位对其开始相加,如果最高位的进位不为0,要进行添加到末尾,最后将得到的二进制数字进行翻转。//设置新的二进制字符串。原创 2022-09-12 12:20:58 · 160 阅读 · 0 评论 -
每日leetcode[加一】
/以12499为例,i为第2时,j从第三位开始每个要变成0,此处注意观察位置。//多增加一个位置,当全部为9的情况。//数组特性,不赋值的情况下,其他自动赋值为0。(2)假如末尾出现若干个9则查找出现第一次不是9的位置将其加一,9的位置置换为0。=9)//一二种情况的结合。给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。(3)若全部为9,则需要开辟一个新的位置存放1,其余位置全部置换为0。//前面为没有开辟新空间的情况。(1)假如末尾没有出现9,则最后一个数字直接加一。原创 2022-09-10 10:55:04 · 55 阅读 · 0 评论 -
每日leetcode[最后一个单词的长度】
假如从前向后遍历字符串,会遇到很多的空格,无法判断哪一个是最后一个单词,哎呀,我在想自己是不是傻了,应该从后往前找不就行了,找到一个空格就可以算出最后一个单词的长度,不过在此应该考虑两种情况。给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。while(s[index]==' ')//假如出现空格的情况。注意观察两者的不同,后者一开始就碰到了空格,所以应该先把后面出现的空格过滤掉。//查找范围向前变化。=' ')//注意判断条件。原创 2022-09-09 17:07:14 · 89 阅读 · 0 评论 -
每日leetcode[删除元素】
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。今天的题跟昨天的基本思想相似,就是判断条件的变化,所以不会的友友去翻我昨天的笔记哈。// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。// nums 是以“引用”方式传递的。//如果数组的长度为0当然不用考虑元素存在删去的问题。// 在函数里修改输入数组对于调用者是可见的。原创 2022-09-06 15:08:03 · 85 阅读 · 0 评论 -
每日leetcode[删除有序数组中的重复项】
更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。//两个指针都从下标1开始,有重复元素,或者没有重复元素时第一个元素都不发生改变。=nums[fast-1])//不重复时。while(fast原创 2022-09-05 21:00:33 · 77 阅读 · 0 评论 -
每日leetcode[合并两个有序链表】
使用哑节点prehead,将哑节点设置为合并后的链表之前的元素,设置两个指针分别指向两个链表,哑节点的next指向两个指针中值较小的值,将两个指针进行比较并向链表的后面移动,不断重复过程,直到两个链表中为空,或者有一个不为空的情况下,将非空链表的元素连接到最后即可,哑节点的作用主要是保存小的值,两个指针的作用主要是通过比较获得小的值,这样就将从小到大的两个链表的元素连接起来了。输入:l1 = [1,2,4], l2 = [1,3,4]输入:l1 = [], l2 = [0]输出:[1,1,2,3,4,4]原创 2022-09-04 17:41:32 · 236 阅读 · 0 评论 -
每日leetcode
pairs[ch]){//弹出栈顶元素观察是否与哈希函数配对的相同。括号配对的特性与栈的特性相同,先进后出,最外层的括号最后考虑,使用循环遍历字符串,遇到左括号进栈,然后检查哈希表是否有配对。unordered_map pairs={//建立配对哈希表。for(char ch:s){//遍历字符串。=0)//奇数的情况不满足。因为是相同类型的配对,想到哈希函数的特性,键值一一配对。原创 2022-09-03 10:15:10 · 113 阅读 · 0 评论 -
每日leecode[最长前缀
leetcode转载 2022-09-01 17:53:16 · 54 阅读 · 0 评论 -
每日leetcode【罗马数字转整数】
leetcode原创 2022-08-31 20:15:40 · 51 阅读 · 0 评论 -
每日leetcode[回文数】
回文数原创 2022-08-30 23:44:04 · 63 阅读 · 0 评论 -
每 日 leetcode[两数之和]
Leetcode原创 2022-08-29 15:48:09 · 60 阅读 · 0 评论 -
程序设计实验复习(输入输出流)
对文件的操作原创 2022-06-25 10:10:17 · 164 阅读 · 0 评论 -
输入输出流知识总结
输入输出流知识原创 2022-06-19 20:15:21 · 377 阅读 · 0 评论 -
C++期末复习(二)运算符的重载
运算符重载原创 2022-06-18 21:51:09 · 272 阅读 · 0 评论 -
C++期末复习(一),超详细!!!(面向对象的程序设计)
不想看课本? 内容太多??不用担心,小编帮你整理,主要分几个板块,按照章节进行整理,知识点和题目分开的,小编后面再刷题整理哈,主要是记录下自己的学习历程,不对的还请包涵~原创 2022-06-10 16:39:08 · 976 阅读 · 0 评论 -
虚函数知识
1.1虚函数的作用🐵重复定义:在同一个类中定义两个名字相同,参数个数和类型相同的函数注:如果类中出现,编译系统按照同名覆盖的选择决定调用顺序虚函数:在基类声明函数为虚拟的,在派生类正式定义此函数,使用时用指针指向某一派生类对象🐵作用:允许派生类中重新定义与基类同名的函数,可以通过基类指针或者引用访问基类和派生类中的同名函数,同一种方式调用不同类的所有同名函数🙈方式:在基类中函数名前加virtual注:基类指针是指向基类对象的,如果指向派生类对象,自动进行类型转换,将派生...原创 2022-05-31 15:08:43 · 646 阅读 · 0 评论 -
多重继承知识
1.1声明多重继承的方法如果已经声明类A,类B和类C,可以声明多重继承的派生类Dclass D:public A,private B,protected C{类新加的成员}1.2多重继承派生类的构造函数多重继承派生类的构造函数形式与单继承的构造函数形式基本相同,只是在初始中包含多个基类构造函数🐵派生类构造函数名(总参数表):基类构造函数(参数表),基类2构造函数(参数表),基类3构造函数(参数表){派生类中新增加的数据成员初始化}注:①派生类构造函数的执行原创 2022-05-31 15:04:21 · 158 阅读 · 0 评论 -
虚基类知识
注:虚基类并不是在声明基类时声明的而是在声明派生类时指定继承方式声明的egclass A{……};class B:virtual public A{…};class C:virtual public A{…};声明基类的一般形式为class 派生类名:virtual 继承方式 基类名(经过多条派生路径被一个派生继承时,该派生类只继承该基类一次)🐵注:为了保证虚基类在派生类中只被继承一次,应当在该基类的所有直接派生类中声明为虚基类,否则会出现原创 2022-05-31 15:00:41 · 883 阅读 · 0 评论 -
定义一个基本的银行账户类。在基本账户类的基础上派生出1年期定期账户、2年期定期账户、3年期定期账户和5年期定期账户。定义一个n个基类指针组成的数组,随机生成n个各类派生类的对象。让每个指针指向一个派生
定义一个基本的银行账户类。在基本账户类的基础上派生出1年期定期账户、2年期定期账户、3年期定期账户和5年期定期账户。定义一个n个基类指针组成的数组,随机生成n个各类派生类的对象。让每个指针指向一个派生类的对象。这些对象可以是1年期定期账户、2年期定期账户、3年期定期账户,也可以是5年期定期账户。输出每个账户到期的利息。#include <iostream>using namespace std;class account{ protected: double ...原创 2022-05-31 14:39:34 · 149 阅读 · 0 评论 -
某学校对教师每月工资的计算规定如下:固定工资+课时补贴。教授的固定工资为5000元,每个课时补贴50元。副教授的固定工资为3000元,每个课时补贴30元。讲师的固定工资为2000元,每个课时补贴20元
某学校对教师每月工资的计算规定如下:固定工资+课时补贴。教授的固定工资为5000元,每个课时补贴50元。副教授的固定工资为3000元,每个课时补贴30元。讲师的固定工资为2000元,每个课时补贴20元。定义教师抽象类,派生不同职称的教师类,编写程序求若干个教师的月工资。 public: professor(double basic=5000):Teacher(basic){} void input() { cout<<"姓名"...原创 2022-05-28 11:19:48 · 2907 阅读 · 0 评论 -
声明一个教师类和学生类用多重继承的方式声明一个在职研究生派生类·,教师类中包含数据成员name 姓名age年龄,title职称学生类中包含数据成员namel姓名,sex性别,score成绩,在定义派生
声明一个教师类和学生类用多重继承的方式声明一个在职研究生派生类·,教师类中包含数据成员name 姓名age年龄,title职称学生类中包含数据成员namel姓名,sex性别,score成绩,在定义派生类对象时给出初始化的数据然后输出这些数据#include <iostream>using namespace std;class teacher{protected: string name; int age; string title;...原创 2022-05-24 15:40:33 · 509 阅读 · 0 评论 -
声明一个基类Shape,再派生出Rectangle类和Circle类
编写程序,声明一个基类Shape,再派生出Rectangle类和Circle类,二者都有GetArea()函数;计算对象的面积。使用程序Rectangle类创建一个派生类Square。#include <iostream>using namespace std;class Shape//基类{ private: double R; double l; double w; double s;//私有数据,分别为半径,...原创 2022-05-17 15:13:51 · 3817 阅读 · 0 评论