
数据结构
福桐
python, machine learning, deep learning, rdf
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
链表:两数相加
给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&...原创 2019-07-13 16:36:26 · 623 阅读 · 0 评论 -
【分治法】解决子问题的求解
分治法 1) 该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质。 2) 利用该问题分解出的子问题的解可以合并为该问题的解; 3) 该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题。应用到归并排序每次排序的时候左右两边是已经排好顺序的两块数组,不用再组内排序,而是对于两个数组之间无序情况使用外排序将不同的数...原创 2019-07-25 20:45:31 · 3059 阅读 · 0 评论 -
C++:vector常用操作
(1)迭代器iterator:begin()end()(2)容量empty() 判断是否为空size() 返回元素的个数capacity返回分配存储空间的大小(3)访问元素使用数组形式front是第一个元素的引用back是最后一个元素的引用at指定索引位置(4)修改元素push_back(val) 添加元素到最后一个位置pop_b...原创 2019-07-16 15:57:16 · 766 阅读 · 0 评论 -
二分查找
二分查找的先决条件 :有序序列#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>using namespace std;int binarySearch(int *a, int len, i...原创 2019-07-16 15:10:12 · 712 阅读 · 0 评论 -
malloc 与new区别和使用
简单介绍(日后完善)当我们使用关键字new在堆上动态创建一个对象A时,比如A* p = new A(),它实际上做了三件事:向堆上申请一块内存空间(做够容纳对象A大小的数据) 分配对象的空间 调用构造函数 (调用A的构造函数(如果A有的话))把对象的成员进行初始化 返回正确的指针malloc 则必须要由我们计算字节数,并且在返回后强行转换为实际类型的指针。malloc 函数返回...原创 2019-07-10 16:26:25 · 623 阅读 · 0 评论 -
二叉树的中序遍历
给定一个二叉树,返回它的中序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]这道题由于输出是个vector无法使用递归定义,故使用非递归形式,注意当前指针和栈的压入与弹出。/** * Definition for a binary tree node. * struct TreeNode { ...原创 2019-07-14 21:29:29 · 1461 阅读 · 0 评论 -
二叉树的三种遍历,递归和非递归
递归转非递归,用到了栈的前进后出的特点,使得保存当前函数的状态前序遍历,每次的操作:从根节点向左遍历,每次使用栈进行存储,直到空指针,则指向该结点的有孩子中序遍历,每次的操作:从根节点向左遍历,每次使用栈进行存储,直到空指针,则指向该结点的有孩子后序遍历,每次的操作:从根节点向左遍历,每次使用栈进行存储,直到空指针,输出的时候判断该节点如果没有右孩子或者右子树被访问过了,则可以输出该...原创 2019-07-14 21:10:13 · 799 阅读 · 0 评论 -
在C++和C中的typedef struct 与 struct
在C++和C中typedef struct都是定义结构体类型,typedef struct name{}alias(别名),其中 alias代表的是结构体的数据类型。//Ctypedef struct Link { int data; struct Link *next;}link;//link 是 struct Link的别名struct Link { i...原创 2019-07-10 14:03:40 · 695 阅读 · 0 评论 -
C++: 形参的*& 与 *的理解
简单理解,如下代码:int Swap1(int a, int b) { int tmp = a; a = b; b = tmp;}int Swap2(int &a, int &b) { int tmp = a; a = b; b = tmp;}Swap1中a,b的交换,形参不会改变实参的数值;Swap2中的a,b的交...原创 2019-07-13 20:29:40 · 7115 阅读 · 3 评论 -
数据结构之堆结构
核心:堆树堆的定义:1. 堆是一颗完全二叉树;2. 满足每个结点的值总是大于等于(或者小于等于)其左右孩子的数值3. 堆中的子树都是堆树简而言之,堆是一颗完全二叉树,且子树都是父节点的值大于等于左右孩子的值。数组表示的话,因为完全二叉树的特点,下标得到确定父节点的索引为i(i>=1),则左右孩子为2i和2i+1;又因为子树都是堆树,则array[i] >= ...原创 2019-07-04 15:06:19 · 933 阅读 · 0 评论 -
【leecode】92. 反转链表 II
反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤m≤n≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL思路:将单链表进行反转,头变尾,尾变头,改变指针。但是这个题,需要进行指针边界的判定。(1) ...原创 2019-08-09 19:05:30 · 700 阅读 · 0 评论