![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
algo▪Tempest
一天亿点,法力无边
展开
-
BST+AVL+SB
BST性质左子树<根节点、右子树>根节点用途解决排名相关的检索需求基本操作插入操作一直插入到叶子节点删除操作1、删除叶子节点:直接删除,并将其父节点的孩子节点置空2、删除度为1的节点:删除后,将孩子节点挂到父节点的父节点上3、删除度为2的节点:找到前驱或者后继替换后,转换为度为1的节点缺点查找效率依赖于节点的插入顺序AVL树二叉排序树可能会退化成链表,时间...原创 2020-04-22 13:28:43 · 157 阅读 · 0 评论 -
森林与并查集
连通性问题:①quick-find算法:简单来说a联通b,b联通c,得到a联通c。这便是一种连通性。类似下图的颜色覆盖:时间复杂度:②quick_union算法:当前值记录着下一个联通的点习题:1.2.quick-union算法总结:时间复杂度:low(i)表示:树高为i的情况下,最少节点数。low(1)= 1;low(2)= 2;low(3)= 4;...原创 2020-02-22 20:15:39 · 172 阅读 · 0 评论 -
二叉排序树
二叉排序树的性质:二叉排序树的插入操作:③的左右孩子均为空,且由于此树的性质,10置为③的右孩子,结束。二叉排序树的删除:解决思路:1.直接删除2.如图:3.如图:中序遍历为:17-18-19-20-28-29-30-32LeetCode:代码实现:#include <stdlib.h>#include <stdio.h>typed...原创 2020-02-22 16:59:43 · 104 阅读 · 0 评论 -
哈希表
哈希表:使用哈希函数将任意类型的数据映射为整型值比如val % size这个函数,(处理冲突)如下图所示:处理冲突的四大类操作:1.开放定址法2.拉链法3.再哈希4.建立公共溢出区(存储产生冲突的值的索引)Leetcode题:代码实现:#include <stdio.h>#include <stdlib.h>#include <strin...原创 2020-02-22 15:38:43 · 84 阅读 · 0 评论 -
查找
二分查找二分查找的特殊情况1若arr[mid] == 1, min = mid + 1;若arr[mid] != 1, max = mid - 1;二分查找的特殊情况2三分查找原创 2020-02-20 20:49:12 · 106 阅读 · 0 评论 -
排序
稳定排序①插入排序:将数据序列分成两部分(无序部分和有序部分),从无序序列依次取值向有序序列插入即可。最坏时间复杂度o(n²),最好时间复杂度o(n)②冒泡排序:(按从小到大的顺序)从头到尾比较,若前面的元素比后面的元素大,则交换,否则,索引往后走,直到遍历完全部元素。最坏时间复杂度o(n²),最好时间复杂度o(n)冒泡排序的优化:③归并排序:采用分治思想,将问题进行拆解排...原创 2020-02-20 16:58:35 · 136 阅读 · 0 评论 -
二叉树
二叉树的性质:完全二叉树和满二叉树的概念:二叉树的广义表表现形式:将广义表转换为二叉树(伪代码):设置一个标记变量 k,初始为 -1;设置一个标记节点 p;循环遍历存储广义表的字符串 str:如果 str[i] 是左括号:则设置 k 为 0;把 p 压入栈中。否则如果 str[i] 是逗号:则设置 k 为 1。否则如果 str[i] 是右括号:则栈顶元素出栈。否则...原创 2020-02-16 11:22:13 · 113 阅读 · 0 评论 -
栈(表达式求值)
这里只说明一点,注意栈的元素是先进后出(后进先出)的,在运算的时候,注意运算符前后的数字#include <stdio.h>#include <stdlib.h>#include <ctype.h>#define ERROR 0#define OK 1typedef struct Stack { int *elements; in...原创 2020-02-14 09:20:05 · 71 阅读 · 0 评论 -
链表节点插入删除输出指示位置
/************************************************************************* > File Name: 3.list.cpp > Author: > Mail: > Created Time: 2020年02月13日 星期四 14时34分45秒 **********************...原创 2020-02-13 16:19:38 · 135 阅读 · 0 评论 -
单链表详述
/************************************************************************* > File Name: easylist.cpp > Author: > Mail: > Created Time: 2020年02月13日 星期四 08时55分09秒 ********************...原创 2020-02-13 09:52:11 · 61 阅读 · 0 评论 -
单链表的操作
/************************************************************************* > File Name: 2.cpp > Author: > Mail: > Created Time: 2020年02月12日 星期三 15时02分27秒 ***************************...原创 2020-02-12 15:52:37 · 73 阅读 · 0 评论 -
数据结构之顺序表操作
涉及到顺序表的增删+扩容(这没什么好说的,直接看代码)/************************************************************************* > File Name: 1.cpp > Author: > Mail: > Created Time: 2020年02月12日 星期三 10时35分04秒...原创 2020-02-12 11:46:12 · 83 阅读 · 0 评论