自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 数据结构(线性表链式存储)的几个基本操作

取结点个数取结点个数时,cnt从0开始//求单链表的表长//从首元结点开始,依次计数所有结点int ListLength_L(Linklist L) { int cnt = 0; LNode* p; p = L->next; while (p != NULL) { cnt++; p = p->next; } return cnt;}//取值,取单链表中第i个元素的内容取第i个元素的内容时,cnt从1开始因为p的初值时L->next,如果p不为NULL时

2020-12-05 22:44:11 443

原创 char型变量的界限

#include<iostream>using namespace std;int main() { char ch; for (ch = 0; ch < 128; ch++) cout << ch;}这个程序会一直循环ch为127时,此时其二进制为 0111 1111,加一的话其二进制为1000 0000这为补码,原码为1 1000 0000,虽然最高位会被丢弃,...

2020-11-25 23:30:30 155

原创 约瑟夫问题

#include<iostream>using namespace std;int main() { int arr[100] = { 0 }; int n, k; int i, j; int cnt = 0; cin >> n >> k; //n个人,数到k出列 //初始化 for (i = 0; i < n; i++) arr[i] = 1; i = 0; for (j = 0; j < n; j++) { //一共有n个人,

2020-11-25 22:55:04 146

原创 重载<< ,输出类对象

class Time{public: Time(int h = 0, int m = 0, int s = 0) : hour(h), min(m), sec(s) {} void SetTime(int h, int m, int s); friend ostream& operator << (ostream& os, const Time& t);private: int sec, min, hour;};void Time::SetTime(i

2020-11-25 13:40:13 967

原创 高精度整数的乘法

//高精度整数的乘法#include<iostream>using namespace std;int Insert(int* a, int na, int x) { for (int i = na; i > 0; i--) a[i] = a[i - 1]; a[0] = x; return na + 1;}int Mul(int* a, int na, int x) { int i; int jw = 0; //进位 for (i = 0; i <

2020-11-22 20:47:41 326 1

原创 高精度整数的加法

//高精度整数的加法#include<iostream>using namespace std;int Mul(int* a, int na, int x) { int i; int jw = 0; //进位 for (i = 0; i < na; i++) { int temp = a[i] * x + jw; a[i] = temp % 10; jw = temp / 10; } //进位不为0的时候处理a[na]及以后的位 while (jw !=

2020-11-22 19:58:45 208

原创 高精度整数(K进制下, K<= 16)

//高精度整数, K进制下, K <= 16#include<iostream>using namespace std;//x为乘数,K进制//实现原理和十进制相同,十进制每个位上存放1 ~ 9, >=10要进位//k进制每个位上存放1 ~ k-1,>=k要进位int Mul_K(int* a, int na, int x, int K) { int i; int jw = 0; for (i = 0; i < na; i++) { int tem

2020-11-22 14:05:26 219

原创 有序表的合并

//有序表的合并#include<iostream>using namespace std;//a数组和b数组中存放的有是有序的元素,将它们合并为一个有序数组,并存放在c中int Merge(int* a, int na, int* b, int nb, int* c) { int k, ka, kb; k = ka = kb = 0; //k为c的下表,ka为a的,kb为b的 while (ka != na && kb != nb) { //c[k]中

2020-11-22 13:34:18 663

原创 计算增序子数列个数

定义 : 增序子数列例如 ***1, 2 3 4 4, 2 2***等,后一位数字大于等于前一位的数字的一个序列,单个数字也是增序子数列//增序子数列的个数#include<iostream>using namespace std;//计算增序子数列个数//例如 9 2 4 4 3 2 3 1//9, 2 4 4, 3, 2 3, 1一共有五个增序子数列//其中前一个的子序列末尾数大于后一个的子序列的第一个数//计算a[i] > a[i + 1]的个数, 再加上1,就是总

2020-11-22 13:21:15 358

原创 数组的交集,并集

//数组的交集 并集#include<iostream>using namespace std;//在a数组的a[0]到a[na - 1]个元素中找x//找到了返回其下标,找不到返回-1int FindX(int* a, int na, int x) { int i; for (i = 0; i < na; i++) if (a[i] == x) return i; return -1;}//把a数组中进行去重,并把结果返回到c数组中int Uniqu

2020-11-22 13:09:27 1252

原创 数组的去重

//数组去重#include<iostream>using namespace std;//在a数组的a[0]到a[na - 1]个元素中找x//找到了返回其下标,找不到返回-1int FindX(int* a, int na, int x) { int i; for (i = 0; i < na; i++) if (a[i] == x) return i; return -1;}//把a数组中进行去重,并把结果返回到c数组中int Unique(int

2020-11-22 12:41:54 494

原创 高精度整数

//高精度整数#include<iostream>using namespace std;int Mul(int* a, int na, int x);int main() { int x, n; int a[1000], na; //a为一个数组,来保存各个位上的数字 //na为数组的长度 int i; //初始化 x^0 = 1,此时数组长度为1 a[0] = 1; na = 1; cin >> x >> n; //x的n次方 for

2020-11-22 00:24:02 255 2

原创 最大公约数和最小公约数(优化)

//greatest common of divisor 最大公约数int GCD(int x, int y) { int r; while (1) { r = x % y; if (r == 0) return y; x = y; y = r; }}//least common multiple 最小公倍数int LCM(int x, int y) { return x / GCD(x, y) * y; //先除以最大公约数再乘y,这样可以有效的避免溢出}x

2020-11-14 09:46:01 238

原创 延时程序

#include<stdio.h>#include<time.h>#include<stdlib.h>void wait_s(int x); //x svoid wait_ms(int x); //x msbool checktime_s(clock_t start, int x); //距离start过了x秒返回truebool checktime_ms(clock_t start, int x);int main(void) { int x, i,

2020-11-13 18:08:41 1216

原创 一个有延时作用的程序

#include<iostream>#include<ctime>#include<cstdlib>#include<cstdio>using namespace std;int main(void) { clock_t start, finish; int x; start = clock(); //start为当前时间 while (1) { x = rand() % 99 + 1; finish = clock(); //

2020-11-09 23:18:08 291

原创 递归巧解汉诺塔问题(hanoi)

/*hanoi问题:在source处的盘子通过help处到达targetsource:一开始所处的位置help:盘子可以借助的地方target:到达的地方n:盘子的个数*/void hanoi(int n, char source, char help, char target) { x++; //如果只有一个盘子,从source到target就好了 if (n == 1) cout << source << "->" << target &

2020-11-03 20:02:00 1213 1

原创 数组类模板

模板类的头文件#pragma once#include<cassert>template <typename T>class Array{public: //构造函数 Array(int sz = 50); //析构函数 ~Array(); //复制构造函数 Array(const Array<T>& a); //重载 = Array<T>& operator = (const Array<T>&amp

2020-10-13 23:51:03 476

原创 函数模板与类模板

如果需要用同一个算法对不同类型的数据进行处理,普通的话需要重载多个函数,十分冗余繁琐,利用模板则可以很好的处理这一问题.未使用模板:float abs(float x) { return x < 0 ? -x : x; }int abs(int x) { return x < 0 ? -x : x; }double abs(double x) { return x < 0 ? -x : x; }使用了模板之后则一个函数就可以替代上方所有重载的函数我们先来看一看函数模板的定义语

2020-10-10 23:17:48 152

原创 override与final

override是一个保障措施,保障派生类中的函数与基类中的虚函数的函数签名一致,否则会因为有些地方有区别而导致一些调试难以发现的错误.例Base1中形参是int,Base2中形参是float不一致.override相当于增加了一层保护措施,验证是不是函数签名都一致.final就相当于一个终止措施,被final修饰的类不能被继承,被final修饰的函数不能被重写....

2020-10-08 23:19:25 208

原创 抽象类简介

在了解抽象类之前,首先我们得了解一下纯虚函数从定义上讲,纯虚函数是一个在基类中声明的虚函数,它在该基类中没有定义具体的操作内容,要求各个派生类根据具体需求来定义自己的版本.声明格式:virtual 类型 函数名(参数) = 0;带有纯虚函数的类就叫抽象类.class Base //抽象类{public: virtual void function(int n) = 0; //其他内容};Base就是一个抽象类抽象类作用:①将有关的数据和行为组织在一个继承层次结构中,保证派生类具

2020-09-30 19:04:18 215

原创 关于文件如何保存对自身进行修改的操作的一个小发现

偶然间发现了当打开word、ppt的时候,会自动生成一个副本。上面的时打开的ppt,下面的是创建的副本。当我们对这些文件进行操作的时候,首先是对副本操作,当关闭这些文件时,会弹出保存还是不保存文件。点击保存则把副本中的内容赋值给打开的文件后删除副本,点击不保存则直接删除副本。ps:如果有不正确的地方请指正。...

2020-09-29 09:34:06 200

原创 虚析构函数

虚析构函数实在虚函数的基础上演化出来的,是虚函数的进一步延申,如果还不是很清楚虚函数的作用可以看我上一个博文:虚函数#include<iostream>using namespace std;class Base1{public: //非虚析构函数 ~Base1() { cout << "Base1 destructor" << endl; }};class Base2 : public Base1{public: Base2() { p = n

2020-09-27 15:34:35 184

原创 C++中虚函数的作用

#include<iostream>using namespace std;class Base1{public: void display();};void Base1::display() { cout << "Base1::display" << endl; }class Base2 : public Base1{public: void display();};void Base2::display() { cout <&lt

2020-09-26 16:55:09 190 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除