数据结构与算法
zhhp1001
这个作者很懒,什么都没留下…
展开
-
常函数
转自 :https://blog.csdn.net/shixiaoguo90/article/details/25658059 类的成员函数后面加 const,表明这个函数不会对这个类对象的数据成员(准确地说是非静态数据成员)作任何改变。 在设计类的时候,一个原则就是对于不改变数据成员的成员函数都要在后面加 const,而对于改变数据成员的成员函数不能加 const。所以 con...转载 2019-01-10 15:08:23 · 6498 阅读 · 0 评论 -
二叉树的遍历 (C++实现)
本文涉及三种常见的遍历方式 : 先序遍历、中序遍历、后序遍历,以及用C++实现的非递归版本代码。首先我们定义一下二叉树结点类struct BinaryTreeNode { int val; BinaryTreeNode* leftchild; BinaryTreeNode* rightchild; BinaryTreeNode(int const& _val, Bina...原创 2019-03-06 22:05:28 · 30849 阅读 · 4 评论 -
剑指offer 面试题9: 用两个栈实现队列
class Solution{public: void push(int node) { stack1.push(node); } int pop() { if (stack2.empty()) { while (!stack1.empty()) { stack2.push(stack1.top()); stack1.pop(); } //i...原创 2019-03-11 09:27:16 · 401 阅读 · 0 评论 -
剑指offer ——删除链表中重复的节点
解法:在重新定义链表指针域的同时, 使用 delete 释放了已删除节点的内存空间。class Solution {public: ListNode* deleteDuplication(ListNode* pHead) { if (pHead == nullptr || pHead->next == nullptr) { //平凡列表无重复,确保列表...原创 2019-03-15 17:06:13 · 387 阅读 · 0 评论 -
剑指offer ——顺时针打印矩阵
class Solution {public: vector<int> printMatrix(vector<vector<int> > matrix) { int rows = matrix.size(); int cols = matrix[0].size(); vector<int> result; if (cols ==...原创 2019-03-20 10:45:44 · 357 阅读 · 0 评论 -
二叉树的重建
class Solution {public: struct TreeNode* reConstructBinaryTree(vector<int> pre, vector<int> in) { int inlen = in.size(); if (inlen == 0) return NULL; vector<int> le...原创 2019-03-26 10:38:31 · 450 阅读 · 0 评论 -
背包问题
01背包 完全背包 多重背包01背包有N件物品和一个容量为C的背包。 第i件物品的 重量为 c[i] , 价值为 v[i]。 求解将哪些物品装入背包可使价值总和最大。思路: 将前i件物品放入容量为C的背包中, 若只考虑第i件物品的策略 (放或者不放), 那么就可以转化为 一个只 牵扯 前 i-1 件物品的问题。定义状态: f[i][C] = max{f[i - 1][C], f[...原创 2019-04-03 09:38:52 · 532 阅读 · 0 评论 -
字符串分隔
链接:https://www.nowcoder.com/questionTerminal/d9162298cb5a437aad722fccccaae8a7来源:牛客网#include <iostream>#include <string>using namespace std;void fuck(string str) { if (st...原创 2019-04-03 16:18:06 · 633 阅读 · 0 评论 -
Quick Sort (C++)
#include <iostream> #include <vector>using namespace std;int partition(vector<int>& num, int first, int last) { int k = first; int ntemp = num[last]; //这里设置...原创 2019-04-16 16:07:46 · 683 阅读 · 0 评论 -
c_str()
转载于:https://blog.csdn.net/chaipp0607/article/details/75371149atoi()是C语言中的字符串转换成整型数的一个函数,在例子的代码里面会用到,其函数原型为:int atoi(const char *nptr);下面是一个C语言的代码,可以正常运行:#include <stdio.h>#include &l...转载 2019-03-04 10:15:36 · 3006 阅读 · 0 评论 -
C++ 11多线程总结
https://www.ctolib.com/topics-130786.html转载 2019-03-03 19:39:24 · 340 阅读 · 0 评论 -
C++11 多线程 ——detach、join
#include <iostream>#include <thread>void function_1() { std::cout << "I'm function_1()" << std::endl;}int main() { std::thread t1(function_1); // do other th...原创 2019-03-03 10:54:04 · 1049 阅读 · 0 评论 -
数据结构——向量
1.ADT支持的操作接口 操作接口 功能 适用对象 size() 报告向量当前的规模(元素总数) 向量 get(r) 获取秩为r的元素 向量 put(r, e) 用e替换秩为r元素的值 向量 insert(r, e) e作为秩为r元素插入,原后继元素依次后移 向量 remove(r) 删除秩为r的元...原创 2019-01-10 18:48:38 · 1862 阅读 · 0 评论 -
数据结构——列表
1.列表节点ADT接口操作接口 功能 data() 当前节点所存数据对象 pred() 当前节点前驱节点的位置 succ() 当前节点后继节点的位置 insertAsPred(e) 插入前驱节点,存入被引用对象e,返回新节点位置 insertAsSucc(e) 插入后继节点,存入被引用对象e,返回新节点位置 typedef int ...原创 2019-01-17 09:23:15 · 1552 阅读 · 0 评论 -
pointer to pointer/reference to pointer
When we use "pass by pointer" to pass a pointer to a function, only a copy of the pointer is passed to the function. We can say "pass by pointer" is passing a pointer by value. In most cases, th...原创 2019-01-20 11:26:55 · 708 阅读 · 0 评论 -
数据结构————栈
1.ADT接口操作接口 功能 empty() 判断栈是否为空 size() 报告栈的规模 push(e) 将e插至栈顶 pop() 删除栈顶对象 top() 引用栈顶对象原创 2019-01-15 17:16:54 · 392 阅读 · 0 评论 -
数据结构与算法书目
要补基础了,大概浏览了以下四本书:数据结构与算法分析 C++语言描述 4th 这本书内容不错...但是这个翻译水平是我见过最烂的...看原版吧这本。算法导论 数学推导比较多,伪代码实现, 感觉应该在阅读其他书籍入门后再来看大话数据结构 C语言描述,代码质量不行... 厕所读物 可看可不看邓俊辉 数据结构 (C++语言版) 比较了上面几本书之后,发现这本是真不错,配合习...原创 2019-01-10 09:32:08 · 360 阅读 · 0 评论 -
数据结构————队列
1.ADT接口 操作 功能 size() 报告队列的规模(元素总数) empty() 判断队列是否为空 enqueue(e) 将e插入队尾 dequeue() 删除队首对象 front() 引用队首对象 ...原创 2019-01-15 17:42:40 · 454 阅读 · 0 评论 -
Function Pointer
这篇一看就懂 https://www.learncpp.com/cpp-tutorial/78-function-pointers/原创 2019-01-22 16:34:32 · 377 阅读 · 0 评论 -
C++ main函数中参数argc和argv含义及用法
本文转载于:https://blog.csdn.net/dcrmg/article/details/51987413argc 是 argument count的缩写,表示传入main函数的参数个数;argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径,所以确切的说需要我们输入的m...转载 2019-02-25 15:30:21 · 754 阅读 · 0 评论 -
ALDS1_10_C Longest Common Subsequence
#include <iostream>#include <string>#include <algorithm>using namespace std;static const int N = 1000;int lcs (string x, string y) { int m = x.size(); int n = y.size...原创 2019-04-17 11:40:06 · 505 阅读 · 0 评论