数据结构系列2-单链表
数据结构系列2 - 单链表 - C语言实现 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119/************************************************************************** File Name: SingleLinkList.c* Author: tyrantlucifer* E-mail: tyrantlucifer@gmail.com* Blog: https://tyrantlucifer.com *************************** ...
Hadoop集群实战安装记录
Hadoop 3.1.3集群实战安装记录 前言 大数据开发中,hadoop生态体系是大数据的核心,学习大数据开发去搭建一个简单的hadoop集群是必然的,本篇文章记录了搭建hadoop集群的步骤,好记性不如烂笔头,让我们开始吧。 先前准备 Centos7 Linux iso镜像 Vmware workstation虚拟机软件 Xshell Hadoop3.1.3安装包 JDK1.8 Hadoop集群架构 节点1 节点2 节点3 IP 192.168.110.100 192.168.110.101 192.168.110.102 Hostname hadoop001 hadoop002 hadoop003 hadoop001 hadoop002 hadoop003 HDFS NameNode DataNode DataNode SecondaryNameNode DataNode YARN NodeManager ResourceManager NodeManager NodeManager 简单描述一下本次搭建集群的架构, ...
基于C语言指针的一些思考
基于C语言指针的一些思考 前言 最近在复习数据结构和复现数据结构算法的过程中遇到了很多困惑的点,曾经默许在脑海中的概念被一次次推翻,很羞愧当时在学习的时候没有发现这些隐晦的知识点,说明当时的自己没有认真的思考和学习,亡羊补牢,希望为时不晚。 问题的抛出 记得当时在学生时代老师教给我的第一手知识,那就是指针 = 数组变量名,从用法和意义上两者都是一样的。假设老师说的是对的,以下程序的输出结果应该是以下所示: 123456789101112#include <stdio.h>void printArray(int* array, int n){ for(int i = 0; i < n; i++){ printf("array[%d] = %d\n", i, array[i]); }}void main(){ int array[3] = {1, 2, 3}; printArray(array, 3);} 123array[0] = ...
数据结构小书系列1-绪论
一、数据结构基本概念 1. 基本概念和术语 数据 数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序所识别和处理的符号的集合。 数据元素 数据元素是数据的基本单位。 数据对象 数据对象是具有相同性质的数据元素的集合。 数据类型 数据类型是一个值的集合和定义在此集合上的一组操作的总称。 数据结构 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 2. 数据结构三要素 数据的逻辑结构 逻辑结构是指数据元素之间的逻辑关系。 数据的存储结构 存储结构是指数据在计算机中的表示,也称之为物理结构,主要有以下几种方式: 顺序存储 链式存储 索引存储 散列存储(哈希存储) 数据的运算 二、算法和算法评价 1. 算法的基本概念和特性 算法概念 算法是对特定问题求解步骤的一种描述,举个简单的例子,如何把一头大象放进冰箱的解答就是一个算法。 算法特性 有穷性 确定性 可行性 输入 输出 2. 算法的评价度量 时间复杂度 算法中所有语句的频度之和为T(n) ...
基于Typora的一站式图床解决方案
痛点 我是一个程序员,也是一个IT行业从业者,在行业内有一条简单的规则,那就是记录,相信一个优秀的程序员会有随手记录的习惯,这样能时刻保持知识的保留,而且百分之八十的程序员都会使用Markdown语法进行记录,在笔记中插入图片有利于后期维护笔记和回复笔记,图文并茂可以更快的让我们get到当时的点,可问题却随之而来: 图片保存在本地容易丢失,在拥有一定技术或者经济实力的时候想要更换电脑,资料的迁移是一件非常繁琐且困难的事情。 图片保存在云端会产生费用成本,目前各家图床供应商价格不一,居高不下,还害怕服务商有朝一日带着小姨子跑路,人财两空。 市面上的云笔记服务商有很多,将图片保存到他们的服务器下也可以,但百分之九十的服务商会设置防盗链,你的图片就只能在笔记服务商的软件环境下才有效,依旧有跑路的风险。 基于以上的痛点,我们可以得到这么几个关键词:云端 速度快 图片可复用 无跑路风险 免费 方案制定和选择 基于第一章节总结的关键词,根据当前市场的情况和技术现实,可以根据关键词得出以下方案: 云端、免费、无跑路风险:Github为个人开发者提供无限云空间,被微软收购更加财大气粗,已经准备 ...
如何使用kms工具激活vol版本的Windows和Office
问题的抛出 相信在座的各位白嫖党都想用到正版的Windows系统和正版的Office套装,市面上大多数的方案是从淘宝花几块钱买个数字激活码激活和用盗版的激活工具,有什么方法才能让我们用到名正言顺的正版呢?还真用,那就是kms激活。 什么是KMS? KMS,是 Key Management System 的缩写,也就是密钥管理系统。这里所说的 KMS,毋庸置疑就是用来激活 VOL 版本的 Windows 和 Office 的 KMS 啦。经常能在网上看到有人提供的 KMS 服务器地址,那么你有没有想过自己也来搞一个这样的服务呢?而这样的服务在 Github 上已经有开源代码实现了。 本文就是在这个开源代码的基础上,开发了适用于三大 Linux 发行版的一键安装 KMS 服务的脚本。 脚本使用环境 系统支持:CentOS 6+ Debian 7+ Ubuntu 12+ 虚拟技术:任意 内存要求:≥128M 关于脚本 本脚本适用于三大 Linux 发行版,其他版本则不支持。 KMS 服务安装完成后会加入开机自启动。 默认记录日志,其日志位于 /var/log/vlmcsd.log。 安 ...
如何在Linux主机搭建code-server
前言 深夜更新,没想到吧。最近发生了很多的事情,很多很多,多到无法想象,2020年的前半年对我一点都不太友好,希望下半年能够时来运转,让我摆脱这种困境。 随着计算机和5G技术的发展,云计算、云存储这种需要大量网络带宽的解决方案开始变得愈发流行起来,企业越来越喜欢把自己的数据和自己的业务搭建在云上,本地没有对应的负载和维护成本,既能够解决数据存储和备份的痛点,对于版本回退和灾备也有了更好的支持,可能在未来10年后,人们只要靠一个浏览器,可是实现当前所有软件的功能。 今天的主角就是依赖于云存在的code-server,项目地址:https://github.com/cdr/code-server。 顾名思义,从字面意思上来看它是一个编码服务器,实际上它就是一个可以架设在云端的代码编辑器,也是vscode的云版本,只要在对应的服务器上架设好的服务,理论上只要你有浏览器,你可以在任何设备上进行代码的编写,同时你的环境也不会丢掉,以后再也不用走哪里都带着一个笨重的电脑,可能一个蓝牙键盘,一个iPad就足够。好了,铺垫了这么多,接下来让我们来看看它如何架设。 安装 Ubuntu 服务器 1234 ...
手把手教你搭建MTProxy代理,让你在不扶墙的情况下爽快的使用Telegram
1.什么是Telegram Telegram是款跨平台实时通信软件,客户端开源但服务器专有。服务器本身已加密外,可选额外用户对用户加密。支持传送所有文件类型,更支持语音通话。 2.Telegram的优点 作为一款优秀的即时通讯工具,它具有优秀的保密性,众所周知,x信现在各种收集用户隐私,而且用户也不能随心所欲的去聊自己想聊的东西,有很多的限制,但是在Telegram上却没有,正是因为它的隐蔽性、自由性和开放性,所以被一些国家封杀,只能扶墙出去才能使用这个软件,但是当时开发人员就已经想到了会有今天的封闭性,所以提前有了一款专门属于它的代理----MTProxy 3.什么是MTProxy MTProxy是一款专门属于Telegram的代理服务,用户只需要在自己国外服务器上搭建这个服务,就可以不扶墙而去使用Telegram 项目地址:https://github.com/TelegramMessenger/MTProxy 4.搭建MTProxy 从github上拉取源码 1git clone https://github.com/TelegramMessenger/M ...
利用树莓派和闲置硬盘,搭建起家中的个人网盘
因为给个人笔记本电脑升级,替换下来了一块2.5寸的1T机械硬盘,想着闲置也是闲置,不如用来搞一个nas玩玩,可以存放一些个人文件和电影大片,共享给家中的所有人,接下来就跟随我的脚步,一起来看看如何实现吧 1.前期准备 树莓派(刷好官方系统,具体教程请见百度) 闲置硬盘(可以是2.5寸,也可以是3.5寸,但前提是已经买好了硬盘壳子,能够支持USB连接) 路由器 2.路由器MAC地址绑定 先说一下这一步是干嘛,众所周知,你树莓派连接家中的路由器会通过路由器的DHCP服务分配给你一个IP,但是这个IP租期到了的话会自行更换,为了一劳永逸,只要绑定MAC地址就可以实现永不更换IP,下面说一下操作步骤: 进入后台页面 从功能设置中找到DHCP服务,这里说一下基本路由器操作方式都是找到对应的DHCP服务选项! 设置好自己的MAC地址和IP地址添加进去,如果说不知道自己的树莓派的MAC地址,也不用担心,下面会教你如何去寻找MAC地址 进入终端管理,查看树莓派这个终端,你就能看到对应的MAC地址 3.配置samba文件共享服务 ssh登录 1ssh pi@IP地址 安装s ...
Ubuntu 下编译安装vim 8.1
编译安装可以使vim带有更多的特性,比如+Python3 +Python +clipboard等等 编译安装 卸载自带vim 123sudo apt-get remove -y vim vim-runtime gvim -ysudo apt-get remove -y vim-tiny vim-common vim-gui-common vim-nox 安装对应依赖 1234sudo apt install libncurses5-dev libgnome2-dev libgnomeui-dev \libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev \python3-dev ruby-dev lua5.1 liblua5.1-dev libperl-dev git 从Github上拉取源码包 1git clone https://github.com/vim/vim.git 进入源码包,设置编译参数 12345 ...