链表
概念:数据结构,以链表的形式储存数据,链表一般有许多结点,结点相互连接,每个结点下有一个数据域和一个指针域,数据域(->num)用来储存数据,指针域(->next)用来指下一个节点的位置,最后一个节点的指针域一般为NULL。与数组不同,数组是以线性表的方式储存数据的。STL拥有的容器(List)为双向链表。
特性:
可以在任意的位置迅速的查找,插入,删除某一个元素,修改指针即可;
采用动态储存(List),不会造成内存浪费或溢出;
遍历速度没有数组快(Time);
占用的空间比数组要大(Space);
List的迭代器为双向迭代器,支持前移和后移;
插入和删除操作都不会造成List迭代器的失效,这在vector容器中是不成立的
链表的基操:
1,插入元素,如果是在链表中间则在链表中间插入一个结点,并把该结点与该结点两边的结点相连;如果是在开头插入则新设置一个头结点并把新结点连到原头结点上;如果是在末端则直接在末端新建一个结点;
2,删除元素,原理很简单,把要删除的元素的结点给“忽略”,也就是把该结点与其它结点的联系给切断,然后通过对旁边的节点进行操作来进行删除;
...
进制转换
计算机只能识别2进制的机器语言,汽车的的车牌号是36进制,进制在生活中随处可见,而进制算法,就是所谓的把一种进制的数字,转化为另一种进制的算法,在C++中,有一些有关进制转换的函数及用法:
C中以八进制,十进制和十六进制都可以通过%o,%d和%x轻松实现,然而唯独没有提供二进制输出的快速方式。c++中有一些自带的输出方式可以进行进制转换
//#include<bits/stdc++.h>
#include<bitset> //保留位数的头文件
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
//格式化输出
printf("35的八进制是: %05o\n",35); //按八进制格式输出,保留5位高位补零
printf("35的十进制是: %03d\n",35); //按十进制格式输出,保留3位高位补零
printf("35的十六进制是: %05x\n",35); //按十六进制格式输出,保留5位高位补零
//流输入输出
co ...
高精度算法
C++虽然支持数据的运算,但是它的计算空间仍有范围,如果遇到1000位甚至及其位数以上的运算,就大大超出了C++所能提供的数据范围,这时就需要利用字符数组来保存数据,并根据数学上的运算规则对数据进行运算处理:
##1.高精度加法
#include<bits/stdc++.h>
using namespace std;
char sa[1010],sb[1010];
int i,la,lb,lc,a[1010],b[1010],c[1010];
int main(){
scanf("%s",&sa);
scanf("%s",&sb);
memset(a,0,sizeof(a));// 初始化为0;
memset(b,0,sizeof(b));
la=strlen(sa);lb=strlen(sb);
for(i=0;i<la;i++)
a[la-i-1]=sa[i]-'0';
for(i=0;i<lb;i++ ...
二分查找
二分查找是一种很经典的查找数字的算法,经常用作优化时间复杂度上
问题描述 公司举办年会,为了活跃气氛,设置了摇奖环节。参加聚会的每位员工都有一张带有号码的抽奖卷。现在,主持人依次公布n个不同的获奖号码,小谢看着自己抽奖上的号码win,无比紧张。请编写一个程序,如果小谢获奖了,请输出他中的第几个号码;如果没有中奖,请输出0。
输入 第一行一个正整数n,表示有n个获奖号码,2<n≤100。
第二行包含n个正整数,之间用一个空格隔开,表示依次公布的n个获奖号码。 第三行一个正整数num,表示第小谢抽奖卷上的号码。1≤获奖号码,win<10000。
输出一行一个整数,如果小谢中奖了,表示中奖的是第几个号码;如果没有中奖,则为0。
样例输入 Copy
71 2 3 4 6 17 95553
样例输出 Copy
3
#include<cstdio>
using namespace std;
int s[101],win;
int R(int l,int r){//设置一个二分函数
if(l<=r){
int mid=( ...
论给博客,换主题,DIY,加功能
主题下载并启用
进入命令行,下载 NexT 主题,输入:
Copy
git clone https://github.com/theme-next/hexo-theme-next themes/next
修改站点配置文件 _config.yml,找到如下代码:
Copy
#Themes: https://hexo.io/themes/
theme: landscape
将 landscape 修改为 next 即可。
修改默认背景
通过theme->landscape->source->css->image
把要换的图片替换成文件夹下的banner图片并更名
在public文件夹下用git bash执行hexo generate。然后hexo s预览即可。
索引:
论如何加网站加标签页,以及给文章分类加标签:
https://blog.csdn.net/ganzhilin520/article/details/79047249
https://blog.csdn.net/Com_ma/article/details/76039859
NexT官方 ...
Hexo基本操作
#1,hexo常见操作符:
hexo new "name" # 新建文章
hexo new page "name" # 新建页面
hexo g # 生成页面
hexo d # 部署
hexo g -d # 生成页面并部署
hexo s # 本地预览
hexo clean # 清除缓存和已生成的静态文件
hexo help # 帮助
#2,Hexo 设置显示文章摘要,首页不显示全文
Hexo 主页文章列表默认会显示文章全文,浏览时很不方便,可以在文章中插入 <!--more--> 进行分段。
该代码前面的内容会作为摘要显示,而后面的内容会替换为 “Read More” 隐藏起来。
更多详情请见文章:https://zhuanlan.zhihu.com/p/60578464
使用Git上传和删除远端文件以及npm下载慢解决方案
I 上传文件
以下步骤详细输入
git(包括ssh等) Ctrl+ins 复制 Shift+ins 粘贴
1,git init
2,git add .
//初始化命令
3,git config --global user.mail "264533xxxx"
4,git config --global user.name "tonzinonin"
//对于3-5之间的命令,如果之前已经给git绑定了github的帐号,可以不写
5,git commit -m "commit name"
6,git remote add origin https://github.com/tonzinonin/tonzinonin-code
//你要上传的库的地址
8,git push -u origin master
-->if step 8 error Enter:
[git pull --rebase origin master
[git push origin ...