返回顶部

随笔分类 -  数据结构与算法

data structures and algorithm!
摘要:内容概述及预备知识 预备知识:二叉树定义 代码中的构造 二叉树 : #include <iostream> using namespace std; /* * 二叉树的构造! * */ class TreeNode{ // class 默认是private visiblity | 而c++ 中str 阅读全文
posted @ 2020-09-13 21:50 Zcb0812 阅读(150) 评论(0) 推荐(0)
摘要:How do I thoroughly understand Recursive Algorithm and not feel like recursion is magic? Recursion is magic! But any sufficiently advanced technology  阅读全文
posted @ 2020-09-13 10:40 Zcb0812 阅读(165) 评论(0) 推荐(0)
摘要:内容概述及预备知识 预备知识:递归函数与回溯算法 #include <iostream> #include <vector> using namespace std; class ListNode{ public: int val; ListNode * next; ListNode(int x): 阅读全文
posted @ 2020-09-12 12:29 Zcb0812 阅读(182) 评论(0) 推荐(0)
摘要:内容概述及预备知识 预备知识:钞票支付问题: 代码实现: #include <iostream> using namespace std; int main(){ const int RMB[] = {200,100,20,10,5,1}; int kinds = sizeof(RMB)/sizeo 阅读全文
posted @ 2020-09-10 19:16 Zcb0812 阅读(190) 评论(0) 推荐(0)
摘要:什么是线段树 概念 线段树是一种二元树形数据结构,1977年由Jon Louis Bentley发明,用以储存区间或线段,并且允许快速查询结构内包含某一点的所有区间。 一个包含 n 个区间的线段树,空间複杂度为,查询的时间複杂度则为,其中 , 其中k是符合条件的区间数量。 引例: 假设某大学有一面文 阅读全文
posted @ 2020-07-29 21:05 Zcb0812 阅读(281) 评论(0) 推荐(0)
摘要:堆: 树这种结构 本身在计算机科学领域 占有很重要的地位,这种数据结构之所以占有重要的地位,不仅仅是因为二分搜索树这样的一种结构, 是树本身这种形状可以产生很多拓展,对于不同的问题 ,我们可以稍微改变 或者 限制树这种数据结构的性质,从而产生不同的数据结构,高效的解决不同的问题, 从节开始,将会有四 阅读全文
posted @ 2020-02-24 11:46 Zcb0812 阅读(219) 评论(0) 推荐(0)
摘要:集合和 映射: set & map 前面介绍了二分搜索树的底层实现,这里介绍两个高层的数据结构:集合 和 映射 什么叫高层的数据结构呢? 类似于栈和队列,这种就像我们定义好了相应的使用接口 ,以及它本身所具有的性质,然后我们就可以使用它。 但是这种高层的数据结构的底层其实是可以多种多样的,比如说 栈 阅读全文
posted @ 2020-02-23 18:11 Zcb0812 阅读(290) 评论(0) 推荐(0)
摘要:为什么要研究树结构: 因为生活中本身就有这很多的树结构实例。 例如:电脑中的文件系统,图书馆中的图书分类等等。。。 一个公司中也可以体现树这种结构。 为什么要有树结构: 无论是在生活中,还是在计算机中,大量充斥着树结构,那么为什么呢? 因为高效,快速。 二分搜索树基础: 二叉树: 当然,如果一个节点 阅读全文
posted @ 2019-11-29 16:33 Zcb0812 阅读(222) 评论(0) 推荐(0)
摘要:链表回顾: leetcode 题目(No.203 移除链表元素): 不使用虚拟头节点: 1 class Solution { 2 public ListNode removeElements(ListNode head, int val) { 3 //1,head.val 就是应该删除的节点 4 / 阅读全文
posted @ 2019-11-17 18:52 Zcb0812 阅读(249) 评论(0) 推荐(0)
摘要:什么是链表: 我们之前已经学过了 动态数组,栈和 队列 三种我们自己定义的数据结构。它们三者的底层都是依托静态数组(使用resize解决容量问题)。 而下面我们学习的链表,它才是真正的动态数据结构。 为什么链表很重要: 1,它是最简单的动态数据结构,有助于学习后面更加复杂的数据结构。 2,有助于更深 阅读全文
posted @ 2019-11-15 22:21 Zcb0812 阅读(254) 评论(0) 推荐(0)
摘要:栈Stack: 栈的概述: 虽然看起来它只是数组的子集,但是栈的这种结构对于计算机中组建逻辑有这非常非常大的作用。 入栈 出栈: 栈是一种先进后出(FILO First in Last Out )的结构。 栈的应用01:撤销操作: 栈的应用02:程序调用的系统栈: 了解它有助于我们更加理解递归!!! 阅读全文
posted @ 2019-11-09 21:13 Zcb0812 阅读(165) 评论(0) 推荐(0)
摘要:数组基础: 1 package cn.zcb.demo01; 2 3 public class Test { 4 public static void main(String[] args) { 5 //数组创建 和 初始化的两种方式 6 //1 7 int [] arr = new int[10] 阅读全文
posted @ 2019-11-07 21:03 Zcb0812 阅读(156) 评论(0) 推荐(0)
摘要:01_数据结构学前漫谈: 数据结构的内容: 我们为什么要学习 数据结构? 我们需要根据应用的不同,灵活选择最合适的数据结构!!! 在计算机的世界里,数据结构无处不在: 课程设置: 阅读全文
posted @ 2019-11-07 17:24 Zcb0812 阅读(129) 评论(0) 推荐(0)
摘要:内容概览及预备知识: 预备知识:栈与队列: STL基本的栈操作(stack): 1 #include <iostream> 2 using namespace std; 3 4 #include <stack> 5 int main(){ 6 stack <int> stk; 7 if(stk.em 阅读全文
posted @ 2019-11-03 17:14 Zcb0812 阅读(191) 评论(0) 推荐(0)
摘要:脑筋急转弯: 答案一: 经理生成个随机数num,a员工加上随机数再告诉员工b,依次类推,最会得到个值val , 就可以求出平均值: avg = (val -num)/3 答案二: 设计个程序,让每个员工都输入自己的工资,然后求和平均即可。 链表概述: 预备知识:链表基础: 基础(c语言版) 1 #i 阅读全文
posted @ 2019-10-04 00:10 Zcb0812 阅读(182) 评论(0) 推荐(0)
摘要:js实现冒泡,选择排序算法: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 7 </head> 8 <body> 9 <script> 10 function bu 阅读全文
posted @ 2019-09-26 15:43 Zcb0812 阅读(228) 评论(0) 推荐(0)
摘要:三种编码方式: 例1: 这里假定w=4(4位), 机器中能表示的所有情况: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 总共有16中表示方法, 第一种方法(补码):B2T(现代计算机都 阅读全文
posted @ 2019-08-28 10:50 Zcb0812 阅读(1230) 评论(0) 推荐(1)
摘要:方法一:位运算 原理图: 利用位运算中的异或操作(相同是0 不同是1) 1 int a = 10; 2 int b = 20; 3 a = a^b; 4 b = a^b; 5 a = a^b; 方法二: 普通方法计算: 左侧代码: 1 int a = 20; 2 int b = 10; 3 a = 阅读全文
posted @ 2019-08-28 09:30 Zcb0812 阅读(376) 评论(0) 推荐(0)