ICode9

精准搜索请尝试: 精确搜索
  • c++实现搜索二叉树2021-10-28 10:00:08

    第一次接触树,各种递归搞得眼花,总算是按书上的代码,敲了下来,记录一下 /** * Created by admin on 2021/10/27. * 搜索二叉树实现 */ #ifndef HELLOWORLD_BINARY_SEARCH_TREE_H #define HELLOWORLD_BINARY_SEARCH_TREE_H #include <istream> template <typename Object> class Bi

  • 二叉树操作实现2021-10-26 21:33:30

    二叉树操作实现 什么是二叉树? 树是常用的一种非线性数据结构。 树有很多衍生分类,其中,二叉树便是最为常见的一种。 二叉树的定义是以递归形式给出的:一棵二叉树是结点的一个有限集合,该集合可能为空,或则是由一个根节点加上两棵分别称为左子树、右子树的、互不相交的二叉树组成。

  • [源码解析] Pytorch 如何实现后向传播 (1)---- 调用引擎2021-10-25 19:33:18

    [源码解析] Pytorch 如何实现后向传播 (1)---- 调用引擎 目录[源码解析] Pytorch 如何实现后向传播 (1)---- 调用引擎0x00 摘要0x01 前文回顾1.1 训练过程1.2 例子1.3 源码剖析0x02 Python 调用过程2.1 调用2.2 引擎0x03 c++世界3.1 支撑系统3.1.1 Edge3.1.2 Edge 相关函数3.1.3 P

  • AVL平衡树2021-10-23 12:31:19

    跨考软工,学习数据结构,树。 ### node节点是三叉链表 struct treeNode { int value; treeNode *parent; treeNode *lchild, *rchild; bool visited; int balance;//平衡因子,左-右,取值-1,0,1; treeNode() : value(0), lchild(nullptr), rchild(nullptr), parent(nullptr), v

  • C++ 的自动类型auto类型推断decltype空指针nullptr 快速遍历for in2021-10-22 17:00:52

    目录 auto 自动类型decltype 推断表达式的类型nullptr 空指针,专门针对指针做的符号for in快速遍历 ,语法格式是for (:) C++ 11以后的一下新语法常用的如下: auto 自动类型 这个相当于swift里面的var ,自动通过右边表达式推断出类型. 示例代码如下: auto a = 5;//自动把

  • 单链表反转(四种方式实现)2021-10-22 16:59:46

    题目: 输入一个单链表,反转该链表并输出 输入: 1->2->3->4->5 输出: 5->4->3->2->1 代码示例: //就地反转 ListNode * reverse1(ListNode *node) { if (node == nullptr) { return node; } ListNode *head = new ListNode(-1); head->next = node;

  • 36. 二叉搜索树与双向链表2021-10-20 18:31:09

    剑指 Offer 36. 二叉搜索树与双向链表 思路:中序遍历+双指针 class Solution { public: Node* treeToDoublyList(Node* root) { if(root==nullptr) return root; stack<Node*> stk; while(root!=nullptr){ stk.push(root);

  • 深刻理解后序遍历二叉树2021-10-20 12:02:22

    起因 在看邓俊辉在学堂在线上的数据结构课的时候,发现前序/中序的二叉树迭代遍历讲的都非常好,偏偏不讲后序。看了书上的讲解后也觉得一头雾水,尤其是需要去找左侧最深可见叶子节点那里,我基本需要背诵代码的逻辑,非常痛苦。 所以开始在网上找有没有更好理解的逻辑去写这个后序遍历。

  • LeetCode - 解题笔记 - 104 - Maximum Depth of Binary Tree2021-10-19 12:30:35

    Solution 1 实际上就是之前 0102. Binary Tree Level Order Traversal 里面“一层一层算”的思路。所以,使用BFS就可以了,完成一层就+1。 时间复杂度: O ( N

  • [源码解析]PyTorch如何实现前向传播(1) --- 基础类(上)2021-10-18 17:33:58

    [源码解析]PyTorch如何实现前向传播(1) --- 基础类(上) 目录[源码解析]PyTorch如何实现前向传播(1) --- 基础类(上)0x00 摘要0x01 总体逻辑0x02 废弃类2.1 Variable2.2 Function0x03 Tensor3.1 定义 in python3.2 查找定义3.2.1 Tensor3.2.2 _TensorBase3.3 转换3.3.1 Python 导入

  • 合并两个有序链表——记录(C++)2021-10-16 09:02:31

    class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if(l1==nullptr&&l2==nullptr) { return nullptr; } ListNode* l3 = new ListNode(); ListNode* temp =l3; while(

  • 2021-10-132021-10-14 19:33:43

    变量和基本类型 nullptr和NULL nullptr是一种字面值,而NULL是预处理变量,在编译前就完成替换 顶层const和底层const 顶层const表示指针本身是常量,例如: int i=1; int *const p=&i; 底层const表示指针指向常量,例如: const int i =1; const int *p=&i; 指针 void * 是一种特殊的

  • 智能指针被释放后的原始指针不可再用2021-10-13 09:35:09

    #include <iostream> #include <string> #include <memory> class MyClass { public: MyClass() { m_count = 1; m_strName = "xiao ming"; } void Increase() { m_count++; std::cout << m_strName << " incre

  • [C/C++ 基础](类型转换系列三) dynamic_cast与std::dynamic_pointer_castcast2021-10-09 20:01:58

    文章目录 结论事例dynamic_cast原理使用测试 std::dynamic_pointer_cast原理使用测试 强调 如果说 static_cast是C++对C风格类型转换的继承,那么 dynaic_cast可以说是完全脱离了C风格的类型转换,主要服务于C++的多态特性。学会正确的使用这种类型转换在大型软件开发的实践

  • LeetCode剑指 Offer II 024. 反转链表2021-10-08 16:00:23

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/UHnkqh 给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输出:[2,1] 示例 3: 输入:head = [] 输出:[] 提示: 链表中节点的数目

  • 链表中环的入口结点2021-10-07 22:33:56

    链表中环的入口结点 描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。 输入描述: 输入分为2段,第一段是入环前的链表部分,第二段是链表环的部分,后台将这2个会组装成一个有环或者无环单链表 返回值描述: 返回链表的环的入口结点即可。而我们后台程序会打印这

  • 剑指 Offer II 047. 二叉树剪枝2021-10-07 21:01:53

    写麻烦了 flag 对于叶子节点表示val是0还是1 对于非叶子节点表示子节点删没删 dfs就好了 写了free就报错,不知道是我写的方式错了,还是oj有问题。     /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode

  • leetcode 148. 排序链表(归并排序 快慢指针 递归 迭代)2021-10-07 15:04:06

    链接:https://leetcode-cn.com/problems/sort-list/ 题目 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 进阶: 你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗? 示例 示例 1: 输入:head = [4,2,1,3] 输出:[1,2,3,4] 示例 2: 输入:head =

  • 链表反转,C++描述2021-10-07 11:05:34

    链表反转还是很绕的,对于C++,则纯粹是在玩弄指针,弄清指针和内存的关系很重要。在左侧的是指针,在右侧的是内存。 template <typename T> struct ListStack; template <typename T> struct Node { private: T item; Node *next = nullptr; friend class ListStack<T

  • 单例模式的实现--C++2021-10-07 10:01:04

    实现单例模式 只能生成一个实例的类是实现了单例模式的类型 //(1)只适合单线程环境的的单例模式实现 class Singleton final { private: Singleton() {}; ~Singleton() {}; Singleton(const Singleton&) {}; Singleton& operator=(const Singleton&) {}; private: static S

  • 2021-10-05 leetcode 数据结构 栈 94.二叉树的中序遍历2021-10-05 21:01:25

    中序遍历定义 首先遍历左子树,然后访问根结点,最后遍历右子树。 遵循:左根右 如图所示:中序遍历结果为4 2 5 1 3 解释图: leetcode 94.二叉树的中序遍历 法一:利用栈 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left;

  • 【Leetcode二叉树的修改与构造三】617. 合并二叉树2021-10-05 11:32:33

    文章目录 Leetcode6171.问题描述2.解决方案解法一:递归解法二:迭代 Leetcode617 1.问题描述 2.解决方案 解法一:递归 这个思路很简单没什么好说的,就是递归处理两棵树的左右子树 1.首先我都不用管题目,参数有两个指针应该怎么处理不用我多说了吧,两个指针总共四种情况,空不

  • 力扣1669 合并链表问题2021-10-02 18:34:59

    原题: 思路: 采用双指针,找到start - 1和 end + 1 的位置,然后进行类似于链表插入的操作即可,解决本问题的重点在于能够准确找到对应的节点。 获新: nullptr   在定义指针的时候,为了避免出现野指针的情况,一般会在定义指针的时候直接完成初始化,nullptr就是用来完成空指针初始化的。

  • 19. 删除链表的倒数第 N 个结点2021-10-02 10:35:14

    题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 解题思路 这题比较简单,就是只要找到倒数第k个节点就可以了,双指针当一把尺子 先让一个指针走出去k步,然后两个指针一起向后就可以了 代码 /** * Definition for singly-linked list. * struct ListNode {

  • 2021-10-012021-10-01 13:34:05

    c++实现二叉树的删除 void BinaryTree::deleteTree(BinTreeNode* &p_root) { if (p_root != nullptr) { deleteTree(p_root->lchild); deleteTree(p_root->rchild); delete p_root; p_root = nullptr; } } 这是接着上一篇二叉树的创建以及中序遍历写的,在这要注意

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有