- 博客(6)
- 收藏
- 关注
原创 二叉树遍历
根据二叉树的先序(后序)和中序转换为后序(先序)模板 1.后序+中序->先序 后序序列和中序序列可以划分成如下几部分 从后序序列的尾部开始(即根节点),遍历中序序列,直到找到相同值。 确定了根节点的在中序的下标后,即可得出左右子树两端的下标。 设根节点在中序的下标为i, 中序左子树的首尾坐标为(L2,i-1) 中序右子树的首尾坐标为(i+1,R2) 关键是确定后序左子树的根坐标,从中序可推断出右子树的长度为(R2-i) 则左子树的根坐标为root-(R2-i)-1 代码如下 void pre(int
2021-04-10 10:43:03
118
原创 【Windows socket】基于TCP服务器端不可绑定端口的问题
基本函数 Windows 下的 socket 程序依赖 Winsock.dll 或 ws2_32.dll,必须提前加载。 这里使用#pragma命令,在编译时加载 #pragma comment (lib, "ws2_32.lib") 使用DLL之前,还需要调用 WSAStartup() 函数进行初始化 WSAStartup() 函数 函数原型 int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData); wVersionRequested 为
2020-10-19 22:38:27
819
原创 【进制转换应用】剑指offer题型归纳
基本知识 1.按位与& 相同位的数字只要有0则位0。 2.按位或| 相同位的数字只要有1则位1 3.按位异或^ 相同位的数字不同则为1****相同则为0 4.左移<< 将运算数的二进制整体左移指定位数,低位用0补齐,将一个数左移一位扩大2倍,以此类推。 5.右移>> 将运算数的二进制整体右移指定位数,高位用0补齐,将一个数右移一位缩小2倍,以此类推。 一、二进制中1的个数 输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。 二、不用加减乘除做加法 写一个函
2020-08-22 09:37:03
128
原创 【回溯算法应用】剑指offer题型归纳
回溯算法基本思想** 回溯法从开始结点(根结点)出发,以深度优先的方式搜索整个解空间。这个开始结点就成为一个活结点,同时也成为当前的扩展结点。 在当前的扩展结点处,搜索向纵深方向移至一个新结点。这个新结点就成为一个新的活结点,并成为当前扩展结点。 如果在当前的扩展结点处不能再向纵深方向移动(处于边界),则当前扩展结点就成为死结点.此时,应往回移动(回溯)至最近的一个活结点处,并使这个活结点成为当前的扩展结点。 回溯法即以这种工作方式递归地在解空间中搜索,直至找到所要求的解或解空间中已没有活结点时为止。 运用
2020-08-02 10:36:46
155
原创 【层次遍历应用】剑指offer题型归纳
层次遍历代码模板 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: queue<TreeNode*> s;//定义一个队列记录将要访问的层次上的结点 void level(TreeNode *
2020-07-19 23:44:17
120
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人