自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HiMark

不会写诗歌的马克吐温

  • 博客(28)
  • 收藏
  • 关注

原创 Python 列表,索引,切片,循环

print() 函数的 end 参数 列表 索引 切片 for 循环 range() 函数 continue 关键字 for 循环中的 else 关键字字符串拼接>>> 's' * 10'ssssssssss'>>> print("*" * 10)**********打印5行递增的星星n = int(input("Ente...

2018-07-31 16:12:00 6812

原创 Python 打印9x9乘法表

python 打印9x9乘法表i=1print("-"*50)while i<10: n=1 while n<=i: print("{:}X{:}={:2d} ".format(n,i,i*n),end='') n+=1 print() i+=1print("-"*50)

2018-07-31 15:31:15 1545

原创 Python 控制流if-else,循环

知识点 if 语句 else 语句 真值检测 while循环输入一个数判断是否大于100 其中else if 可以简写成elif#!/bin/bash/env python3num=float(input("enter :"))if num<100: print("less 100")elif num>100: print("more 100...

2018-07-31 15:28:46 436

原创 Python 运算符和表达式

运算符和表达式的基本使用 关系/逻辑运算 表达式 类型转换表达式:由运算符和操作数组成 2+3 就是一个表达式 运算符:>>> 23.0 - 320.0>>> 22 / 121.8333333333333333注:进行除法运算时若是除不尽,结果将会是小数 如果要进行整除,使用 // 运算符,它将返回商的整数部分。#% 是...

2018-07-31 15:01:42 504

原创 python实验2 变量和数据类型

Python不需要为变量指定数据类型例如写出 abc = 1,abc 就是整数类型,写 abc = 1.0,变量 abc 就是浮点类型 Python 操作字符串,用单引号或双引号括起来>>> "Hello World!" 'Hello World!'从键盘读取一个数字并且检查这个数字是否小于 100#键盘输入一个数字,判断是否小于100num=...

2018-07-31 14:33:00 1318

原创 Date日期类

自主实现C++date类#include<iostream>#include<assert.h>using namespace std;class Date{public: //构造函数(全缺省)d1 Date(int year=1900, int month=1, int day=1) //构造函数的初始化 ...

2018-07-31 08:10:07 227

原创 归并排序Merge

归并排序归并排序是一种基于分治法的一种排序方法。它将要排序的序列分成两个长度相等的子序列,为每一个子序列进行排序,然后再将子序列合并成一个有序的序列。 //归并排序//时间复杂度 O(N*logN)//空间复杂度 O(N)//稳定性:稳定排序///////////////////第一个区间[beg,mid)//第二个区间[mid,end)void _MergeArr(i...

2018-07-30 17:16:55 364

原创 快速排序-Quick

快速排序基本思想 快速排序是一种划分交换的方法,它采用分治法进行排序。1.先从数列中取出一个数作为基准数2.分区过程,将比基准值大的数全放到它的右边,小于或等于它的数全放到它的左边,基准值则在中间3.再对左右区间重复第二步,直到各区间只有一个元素或没有元素/////////////////////////快速排序//时间复杂度: 最坏O(n^2) 序列是完全逆序的//...

2018-07-30 16:31:56 195

原创 TCP服务器的单进程版本,多进程版本,多线程版本。

所需API如下: 1 创建socket文件描述符(TCP/UDP, 客户端+服务器) int socket(int domain, int type, int protocol);•对于IPv4, family参数指定为AF_INET •对于TCP协议,type参数指定为SOCK_STREAM,表示面向字节流的传输协议 •protocol参数指定为0即可2...

2018-07-28 22:13:59 744

原创 C++string类的实现

浅拷贝:简单的赋值浅拷贝 String s1("himark"); Stirng s2=s1;S1和S2包含的指针对象同时指向一块内存 析构时delete会析构两次这个内存块,导致程序崩溃深拷贝: String s1("himark");

2018-07-25 17:27:58 404 1

原创 位图

位图的概念 在一个结构中,用一个比特位来描述一个数据的状态,这种结构就称为位图。位图实际上是哈希表的一种变形。1. 位图的结构定义首先,该位图中最大能表示的比特位个数需要提前设定。 然后,根据最大比特位数来进行内存的申请。内存不能以比特位为单位进行申请,所以可以自己选用一种数据类型来申请内存,这里以64位8字节为一个数组元素长度进行内存的申请。#pragma once#inclu...

2018-07-24 15:34:51 164

原创 哈希桶

哈希表的开散列 开散列法又叫链地址法 开散列法:首先对关键码集合用散列函数计算散列地址,具有相同地址的关键码归于同一个集合,每一个子集称为一个桶,个桶中元素通过单链表链接起来,各链表的头节点存储在哈希表中。bucket.h 1 #pragma once 2 3 #include<stdio.h> 4 #include<stdlib.h> ...

2018-07-24 08:28:58 4312 1

原创 二叉搜索树的插入查找删除

二叉搜索树 二叉搜索树又称为二叉排序树,它或者是一棵空树,或者具有以下性质 它的左子树不为空,则左子树上所有节点值都小于根节点的值 它的右子树不为空,则右子树上所有节点值都大于根节点的值 它的左右子树也分别为二叉搜索树 #include<stdio.h>//定义搜索二叉树的节点结构/孩子表示法ty...

2018-07-24 08:16:29 252

原创 windows客户端上传项目代码到github

项目开发时,为了方便版本管理,许多公司采用git来控制项目版本。 简单介绍下: 以下操作是基本Windows客户端下的Git Bash 进行命令行输入 Git Bash 可在官网下载,直接点击下一步进行安装即可 第一步:在本地新建一个文件夹,作为本地仓库,如“gittest”。打开git bash,进入到该文件夹目录下,如下图: 第二步:将本地仓库初始化,命...

2018-07-21 21:35:14 1010

原创 git2.0的安装-centos6.5

centos6.5 安装git2.0 1.安装编译git时需要的包# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel# yum install gcc perl-ExtUtils-MakeMaker2.删除已有的git# yum remove git3.下载git源码,2.0....

2018-07-21 15:31:08 582

原创 哈希表

哈希概念* 在一种数据结构中,在插入元素时,由待插入元素的值根据一个特殊函数计算出该元素的存储位置,并将该元素放置在此处。在搜索元素时,还是由搜索的元素值根据这个特殊函数计算存储位置,直接在该位置将元素取出即可。该方式即为哈希(散列)方法,哈希方法中使用的转换函数称为哈希(散列)函数,构造出来的结构称为哈希表(散列表)。哈希冲突我们使用同一个哈希函数来计算不止一个的待存放的数据在...

2018-07-21 14:37:55 465

原创 搜索二叉树的查找,插入,删除递归实现

搜索二叉树的概念 搜索二叉树满足下面两个要求:(1)它是一棵二叉树(2)该二叉树中,任意一棵树的根节点值大于它左子树中的所有结点的值,小于右子树中的所有结点的值 因此对于搜索二叉树的中序遍历来说,它是按由小到大依次递增的顺序排列的。1. 搜索二叉树的表示 3 //定义搜索二叉树的节点结构/孩子表示法 4 typedef char SearchTre...

2018-07-18 11:07:58 4637 1

原创 迷宫求解 调用栈,及递归实现

迷宫求解 1. 首先要有一张迷宫地图,地图由两部分组成:(1)一是迷宫中各处的位置坐标,(2)二是迷宫各位置处的状态信息,即该处是墙还是路1)迷宫地图是6*6的,即二维数组是6行6列的。(2)在迷宫中用0表示墙,用1表示路 给定一个地图 初始化地图 3 #define ROW 6 4 #define COL 6 5 6 //定义一个仓库存储地图和...

2018-07-17 11:42:37 748

原创 销毁堆,清理堆,统计堆节点个数【堆】

销毁堆,清理堆,统计堆节点个数1销毁堆 销毁堆时,不仅要将堆中所有元素清空,还需将表示大小堆的函数指针置空。211 //销毁堆212 int HeapDestroy(Heap* heap)213 {214 if(heap==NULL)215 {216 //已经销毁217 return 0 ;218 }219 ...

2018-07-16 10:42:50 716

原创 根据一个堆对数组元素进行排序 【堆】

借用堆对一个数组进行排序首先创建一个堆,如果是升序创建(大堆)反之则相反 大堆创建后初始化,将数组元素插入到堆中来构成堆 对堆中的堆顶元素进行删除 第一次删除过后,最大的堆顶元素存在堆的数组的最后一个位置 第二次删除后,次大的堆顶元素存放在堆的数组的倒数第二个位置 ....待堆中的所有元素删除完之后,存放堆的数组元素排好由小到大最后将存放堆的数组元素依次赋值...

2018-07-16 10:30:52 1685

原创 删除堆顶元素 【堆】

在堆中删除堆顶元素删除元素之前先判断是否为空,如果未空则删除失败在删除堆顶元素之后必须还是一颗完全二叉树,因为堆是由数组进行存储的所以直接删除数组的最后一个元素,不能保证还是一颗完全二叉树因此将堆顶元素与堆尾元素交换,然后进行调整使其满足堆的约束条件 调整思想如下:从根节点开始调整比较根节点值与左右孩子节点的值,1如果根节点值为最大值则满足条件2如果右孩子存在且...

2018-07-16 10:07:33 4567

原创 在堆中插入元素 【堆】

堆的结构定义 5 typedef char HeapType; 6 7 #define MAXSIZE 100 8 //比较函数可以根据情况定义大小堆 9 typedef int (*compare)(HeapType a, HeapType b); 10 //如果是大堆 11 int Greater(HeapType a, HeapType b) 12 { 13 ...

2018-07-13 20:20:08 4042

原创 非递归实现二叉树的先序遍历,中序遍历,后序遍历

非递归实现二叉树的先序遍历,中序遍历,后序遍历1. 二叉树先序遍历(非递归)先序的遍历的访问顺序为先根节点,再左孩子,最后右孩子。所以,根据栈后进先出的特点,应先入栈右孩子,再入栈左孩子。先序遍历,借助栈实现1根节点入栈 2判断栈顶元素是否为空 3访问栈顶元素,出栈 4栈顶元素的右孩子若不为空,入栈。栈顶元素的左孩子不为空,入栈。 5循环2-4...

2018-07-13 16:39:25 1705

原创 销毁一颗二叉树【数据结构】

销毁一颗二叉树 销毁树与遍历操作类似,即遍历一个节点释放 如果采用先序遍历或者中序遍历,销毁根节点后就找不到左右孩子在销毁的时候需要保存左右孩子的地址。因此采用后序遍历销毁一颗二叉树,按照左孩子,右孩子,根节点的顺序销毁, 注意:根节点将根节点指向空,防止成为野指针。340 void DestroyNode(TreeNode* node)341 {342 f...

2018-07-07 15:59:46 12995

原创 VIM的多行注释

多行注释:进入命令行模式,按ctrl + v进入 visual block模式,然后按j, 或者k选中多行,把需要注释的行标记起来按大写字母I,再插入注释符,例如//按esc键就会全部注释了取消多行注释:进入命令行模式,按ctrl + v进入 visual block模式,按字母l横向选中列的个数,例如 // 需要选中2列按字母j,或者k选中注释符号按d键就可全部取消注释...

2018-07-06 20:30:02 160

原创 克隆一棵树 【数据结构】

克隆一棵树 树的创建是递归的,那么树的克隆也采用递归的方式 如下为先序遍历的方法克隆一棵树1 根据树的根节点创建新的根节点 2 根据已知树的左子树递归创建新的左子树 3 根据已知树的右子树递归创建新的右子树 4子树的创建过程按照2~3步骤进行 5如果子树为空直接返回,跳出递归函数。103 //克隆一棵树104 TreeNode* TreeClone(TreeNode* r...

2018-07-06 16:11:39 2277

原创 根据先序遍历的结果创建一棵树【D.S】

根据先序遍历的结果创建一棵树根据先序遍历的结果还原一棵树 则该树是不确定的 例如 先序遍历的结果ABC 有两种形式 如果要还原一棵树,除了要知道先序遍历的结果,还需要知道树的位置。如果用#表示空树, 则左边的二叉树为 AB##C## 而右边的二叉树为 ABC#### 已只先序遍历的结果,...

2018-07-06 11:58:22 2604

原创 二叉树的先序,中序,后序,层序遍历(递归版)

二叉树的概念 一颗二叉树是结点的一个有限集合,集合或者为空或者是由一个根结点 加上两颗分别称为左子树和右子树的二叉树组成二叉树的特点 二叉树的左右顺序不能颠倒 每个结点最多由两颗子树,二叉树的结点度数不大于2二叉树的组成 二叉树的表示方法 // 常用左右孩子表示法 3 typedef char Treetype;...

2018-07-06 10:28:11 878

空空如也

空空如也

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

TA关注的人

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