- 博客(23)
- 收藏
- 关注
原创 剑指Offer(二叉搜索树的后序遍历序列)
二叉搜索树的定义是左孩子节点永远比根节点小,右孩子节点永远比根节点大。比如这个二叉树就是一个二叉搜索树,它的后序遍历为 15 30 20 70 60 50。后序遍历的原则是从左孩子节点到右孩子节点最后到根节点,因此最后一个节点便是根节点50。那么我们怎么判断呢,我们可以看到 15 30 20 都比 50 小,70 60 都比 50 大,对于一个正常的序列他们的个数和等于总序列的长度减去1。再看下一...
2018-07-11 08:16:26
282
原创 剑指Offer(反转链表)
链表一般我们建立的时候都会有一个头结点和一个尾节点,头结点没有存储值,只是起到指向下一个的作用,尾节点有数值,但是指向的下一个尾NULL,这个概念需要弄明白了才能去操作链表。那么如何构建一个标准的链表呢?首先我们定义一个结构体:struct ListNode{ int val; struct ListNode* next;};然后我们来创建链表:ListNode *L;ListNode ...
2018-06-27 10:51:00
10590
1
原创 剑指Offer(链表的倒数第k个数值)
正常的思维都是先遍历一遍链表得到链表的长度,然后通过链表的长度减去k得到正数第几个值。因此我们先用简单的方法解决一下:首先需要我们构建一个链表:我们使用尾插法进行新的节点的加入,因此我们需要创建两个节点,一个节点负责新数据的构建,一个负责链表的记录。struct ListNode{ int val; struct ListNode *next;};首先我们需要构建一个结构体,也就是一个链表...
2018-06-26 14:37:02
303
原创 剑指Offer9(斐波那契数列)
斐波那契数列:1,1,2,3,5,8,13,21,34,55...用数学公式去表示即为:f(n)=f(n-2)+f(n-1) (n>=2)那很明显了,对于第一位和第二位肯定需要单独讨论,如果不考虑内存限制的话,递归是一个很好的解决办法,那么我们用递归的方法解决一下:#include<iostream>#include<vector>using namespace...
2018-06-25 16:11:58
206
原创 剑指Offer7(两个栈实现队列)
栈的原理是先进后出,而队列的原理是先进先出,因此我们很容易下想到将数据先放到栈1,然后将栈1的数据一次pop出到栈2,这样到了栈2再pop时,数据就是和一开始进入栈1的顺序一样了。但是我们需要考虑一个问题,那就是栈2是不是有值的情况,每次当栈1的数据pop到栈2时,我们都需要判断栈2的数据是不是为空。比如:先向栈1push三个数据1、2、3,这个时候按照栈的规律将数据一次pop到栈2,即为:3、2...
2018-06-25 14:43:25
171
原创 Flask-Script学习
Flask-ScriptFlask-Script的作用从某种意义上来说是为了更好的管理项目,它通过一个manager来作为脚本控制整个项目的各个小部分点。比如我们可以在命令行运行服务器,还有就是对于我们做好的小项目,我们可以在manager的文件中加入commed来告诉用户该怎么去使用大项目中的各个小项目的使用规则。嗯,有点像集成开发好的用户接口。from flask_script import ...
2018-05-29 10:00:41
1189
原创 Flask框架快速入门学习(5)
Flask框架之loggerlog的作用是为了方便调试项目的各个过程,同时也有监督的作用。log的等级一共有三个分别为info、warn和error。这三个等级的记录项都会专门记录在对应的文本中,但是值得注意的是,这三个的等级是依次递增的,所有当后面的发生记录项的时候,前面的也会将这些信息记录下来,也就是说如果error发生了记录项,记录的内容同时会出现在info和warn中。def set_lo...
2018-05-28 16:42:30
452
原创 Flask框架快速入门学习(4)
Flask框架之flash和get_flashed_messagesflash的作用是将一个消息压入到一个buf中,比如登陆成功显示的“登陆成功”,我们可以在别的页面读取这个值并显示出来。下面我们来一次简单的演示;# -*- encoding=UTF-8from flask import Flask,flash,get_flashed_messages,redirectapp = Flask...
2018-05-28 10:59:58
486
原创 Flask框架快速入门学习(3)
Flask之重定向/Error重定向顾名思义,即页面跳转,主要是将错误的页面跳转到正确的页面上这里一共介绍两种重定向,一个为301:永久转移;一个为302:临时转移。这里我们需要使用flask框架里的redirect,我们从flask中将redirect包含在项目了,然后我们便可以调用redirect这个函数来实现跳转功能,函数一共包含三个参数,第一个为跳转的地址,第二为跳转的参数(302/301...
2018-05-28 10:28:41
487
转载 排序算法-基数排序(n)
基数排序代码:#include<iostream>using namespace std;void radix(int data[], int size);int main(){ int buff[7] = { 5, 2, 1, 4, 9, 6, 8 }; for (int i = 0; i < 7; i++) cout << buff[i];...
2018-05-24 16:49:26
253
转载 排序算法-计数排序(n)
计数排序代码:#include<iostream>#include<vector>using namespace std;vector<int> counting_sort(vector<int> array, int k);int main(){ vector<int> output; vector<int>...
2018-05-24 16:38:50
197
转载 排序算法-希尔排序(nlogn)
希尔排序代码:#include<iostream>#include<string>using namespace std;void ShellSort(int * arrs, int length);int main(){ int buff[7] = { 5, 2, 1, 4, 9, 6, 0 }; for (int i = 0; i < 7; i+...
2018-05-24 16:23:12
328
转载 排序算法-堆排序(nlogn)
堆排序代码:#include<iostream>#include<string>using namespace std;void MaxHeapFixDown(int a[], int i, int n);void HeapSort(int a[], int n);int main(){ int buff[7] = { 5, 2, 1, 4, 9, 6, ...
2018-05-24 16:09:13
346
转载 排序算法-快速排序(nlogn)
快速排序代码:#include<iostream>#include<string>using namespace std;int Partition(int a[], int low, int high);void QuickSort(int a[], int low, int high);int main(){ int buff[7] = { 5, 2,...
2018-05-24 16:06:32
536
转载 排序算法-归并排序(nlogn)
归并排序代码:#include<iostream>#include<string>using namespace std;void merge(int *data, int p, int q, int r);void mergeSort(int *data, int p, int r);int main(){ int buff[7] = { 5, 2, 1...
2018-05-24 16:00:49
287
原创 排序算法-插入排序(n2)
插入排序插入排序的原理是定义一个count,从初始位置开始,比如第二位的值和前面的所有值进行比较,如果比这个值小,便插在这个值的前面,这样看起来便是前面的那个值向后移动一一位,空出来的地方便是插入值的地方。代码:#include<iostream>#include<string>using namespace std;void InsertSoft(int *buf...
2018-05-24 11:15:14
174
原创 排序算法-冒泡排序(n2)
冒泡排序冒泡排序的算法复杂度为O(n2),其原理就是将相邻的两个数进行比较,如果第一个数比第二个数大,则交换两个数的位置,否者不交换。通过一轮交换,最大的数肯定被排到了数组的最后一位,所以数组的最后一位便是整个数组最大的数,下一轮遍历的时候便不考虑最后一位数据,依次循环到最后,数组被排序完成。代码:#include<iostream>#include<string>u...
2018-05-24 09:22:50
835
原创 二叉树序列化和反序列化(先序)
二叉树序列化将序列化的数据存储到一个数组里,要求数据后面加”!“,没有的数据的用”#!“表示。#include<iostream>#include<string>using namespace std;typedef struct Node{ char data; struct Node *lchild, *rchild;}*BiTree, BiTNode...
2018-05-23 19:07:56
3935
1
原创 二叉树打印(打印出行号)
二叉树的定义:typedef struct Node{ char data; struct Node *lchild, *rchild;}*BiTree,BiTNode;二叉树的创建://创建二叉树void CreatBiTress(BiTree &T){ char ch; cin >> ch; if (ch == '#') T = NULL; else{...
2018-05-22 10:34:19
841
原创 Flask框架快速入门学习(2)
静态文件静态文件一般也就是css和JavaScript文件了,默认放在static文件目录下,下面进行简单的演示:演示效果:很明显,我们可以通过浏览器直接访问这个静态文件。模板文件及模板渲染模板文件一般放在temlaptes文件夹中,也就是html的文件。对于html文件有专门的语言工具,及Jinjia2。对于处理好的html文件,我们可以使用render_template()来进行渲染。代码:#...
2018-05-18 09:52:01
478
原创 Python装饰器
装饰器的作用在于不修改函数原型而对函数进行扩展装饰器的模板为:def deco(func): def wrapper(*args,**kvargs): func() reutrn wrapper 这是一个可变参数的装饰器模板,传入的是一个函数,返回的也是一个函数对于需要扩展的函数,需要在定义函数之前加上@deco案例测试:# -*- encoding = UTF-8...
2018-05-17 16:39:29
132
原创 Flask框架快速入门学习(1)
Flask框架适用于python语言,很好的web开发框架一个最小的应用 这里用一个简单的网站应用来展示flask的使用方法:# -*- encoding = UTF-8from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world(): return 'Hello World!'@ap...
2018-05-17 16:39:14
4921
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人