
数据结构
数据结构
鸡冠花12138
这个作者很懒,什么都没留下…
展开
-
数据结构:二分查找算法
int binarySearch(int[] nums, int target) { int left = 0; int right = nums.length - 1; // 注意 while(left <= right) { // 注意 int mid = (right + left) / 2; if(nums[mid] == target) return mid; else if (nums[.原创 2020-12-15 09:40:47 · 172 阅读 · 0 评论 -
数据结构:平衡二叉树概念、旋转
平衡二叉树 平衡二叉搜索树,又被称为AVL树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。—-来自百度百科 由于普通的二叉查找树会容易失去”平衡“,极端情况下,二叉查找树会退化成线性的链表,导致插入和查找的复杂度下降到 O(n) ,所以,这也是平衡二叉树设计的初衷。那么平衡二叉树如何保持”平衡“呢?根据定义,有两个重点,一是左右两子树的高度差的绝对值不能超过1,二是左右两子树也是一颗平衡二叉树。 如下图所示,左图是一棵平.原创 2020-12-02 12:44:48 · 678 阅读 · 2 评论 -
数据结构:表达式之中缀转后缀
中缀表达式是最常用的算术表达式,运算符在运算数中间,运算需要考虑运算符优先级.后缀表达式是计算机容易运算的表达式,运算符在运算数后面,从左到右进行运算,无需考虑优先级,运算呈线性结构.先举个简单的转换例子2+9/3-5 (前缀)-> 2 9 3 / + 5 - (后缀)先进行乘除再进行加减运算规律,运算数位置不变,改变的是运算符位置可以推栈实现,用堆栈储存等待中的运算符.将当前运算符与最后一个等待的运算符比较.具体转换方式:1.从左到右进行遍历2.运算数,直接输出.3.左括号,直接压原创 2020-12-02 09:39:45 · 599 阅读 · 0 评论