摘要:
1、静态字段 使用static关键字可以定义有多个实例共享的数据。 静态字段可以声明时初始化,未初始化的静态字段将获得默认值。 调用静态字段的方式:类名.字段名。 2、静态方法 调用静态方法:类名.方法名。 this关键字在静态方法中无效。 在静态方法内部直接访问实例字段或实例方法,必须先获得对字段 阅读全文
摘要:
特性:一个直接或间接继承自Attribute的类,一般以Attribute结尾,声明时候可以省略掉 //AttributeTargets表示修饰对象 AllowMultiple表示是否可以多次修饰 [AttributeUsage(AttributeTargets.All,AllowMultiple 阅读全文
摘要:
1、移位运算符 左移:将操作数所有位向左移动相应位数,移位后右边留下的空位用0填充 符号是<< 右移:将操作数所有位向右移动相应位数,正数移位后左边的空白用0填充,负数用1填充 符号是>> 2、按位操作符 值1为true,值0为false 有逻辑运算与、或、异或 按位操作符右边的称为掩码,作用是通过 阅读全文
摘要:
约束的语法形式 1 public T Get<T>(T t) where T:约束 2 { 3 4 return t; 5 6 } 约束类型必须是接口、非密封类或类型参数 约束可以叠加 约束类型: where T:基类 基类约束 where T:interface 接口约束 where T:clas 阅读全文
摘要:
今天想修改我的D盘下300多个文件名称,但是不知道为什么只读属性去不掉,用C#取得了每个视频文件的原名称和修改名称, 将dos可以识别的命令在控制台输出来复制到一个txt文件(若不这么做则复制到dos窗口是一堆乱码)再复制到dos即可 dos批量修改的命令:ren+空格+原名字+空格+改的名字 若名 阅读全文
摘要:
KMP算法是现阶段我接触到最难理解的算法,作为暴力匹配算法的改进版,特别是其中涉及到的回溯,很难懂,本篇博客以我的理解记录KMP算法 一、KMP算法是BF算法的改进,其改进思路为:当模式串与目标串失配时,不回溯到目标串的+1位置,具体怎么做下面说 举个实例:有目标串“ABCDABCDABDE”和模式 阅读全文
摘要:
二叉排序树可能出现的问题:左子树过高或右子树过高,为了解决这种情况采用二叉平衡树树 二叉平衡树:可以看成将二叉排序树高的一边子树“往上提了一下”,即将该边子树的第一个从上至下的第一个结点作为新的根节点 原来的根节点放到另一边补充矮的子树的高度了。 当然还有特殊情况: 如果当前结点的右子树的左子树的高 阅读全文
摘要:
二叉排序树定义: 1. 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 2. 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 3. 它的左、右子树也分别为二叉排序树。 二叉排序树的常用方法: 添加结点:类似二叉树 遍历:所有遍历和普通二叉树一样 删除结点:重点!!!! 阅读全文
摘要:
大顶堆的定义:每一个父节点都大于其子结点,根结点是最大的结点 数组转换为堆:层次遍历,第n层填满2^(n-1)次个,最后一层可以填满也可以不填满 第i个结点的左子结点为2*i+1 右子结点为2*i+2 堆结点的基本思想:将数组构造为大顶堆,把根结点放到无序数组的最后 剩余的元素无序,继续构造大顶堆, 阅读全文
摘要:
二叉树的线索化是指给二叉树加左右两个指针域(称为线索),可以提高空间利用率。 一般先规定好遍历顺序,确定每个结点的前驱和后继 即遍历得到的顺序中前后结点,下面都以中序遍历为例。 规定:左指针域指向该结点的左子结点(或前驱),右指针指向该结点的右子结点 中序遍历得到的第一个结点为首结点,前驱为NULL 阅读全文