随笔分类 -  数据结构

摘要:并查集(Union(并),Find(查),Set(集))一般用树的形式保存集合,但是是用数组模拟的树对于并查集树上的所有点,只有根结点是p[x]=x的,其他的p[x]都是父结点那么就可以通过while(p[x]!=x)x=p[x];来查询一个点的编号,属于哪个集合询问两个元素是否在同一个集合中,直接 阅读全文
posted @ 2023-03-22 12:33 风乐 阅读(49) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/830/https://www.acwing.com/problem/content/831/ 相比数组模拟链表要简单的多,要注意的是tt的初始值,看个人习惯设置,栈一般为0,队列一般为1 //栈 #include<ios 阅读全文
posted @ 2023-03-22 11:34 风乐 阅读(33) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/829/与数组模拟单链表相似但是与之相比多一个l[N],r[N]用这两个向量表示每个结点的前驱和后继初始状态:令head为0,tail为1,初始就这两个点,开头和结尾插入:删除: #include<iostream> us 阅读全文
posted @ 2023-03-21 17:40 风乐 阅读(38) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/828/链表的实现有许多种,可以使用struct加指针的方式实现,但是这样的方式会使用new运算符,new运行的十分的慢动态链表因为new的原因极其慢而数组模拟的静态链表极其快在面试时的数据量一般非常大,这时候new就会拖 阅读全文
posted @ 2023-03-20 22:16 风乐 阅读(24) 评论(0) 推荐(0)
摘要:二叉搜索树的复习(mooc) //关于二叉搜索树(BST)的复习 //二叉搜索树主要用于高效查找 //结构:一棵二叉树,可以为空,不为空则满足以下性质: //1.非空左子树的所有键值小于其根结点的键值 //2.非空右子树的所有键值大于其根结点的键值 //3.左 右子树都是二叉搜索树 // // #i 阅读全文
posted @ 2022-06-25 16:21 风乐 阅读(25) 评论(0) 推荐(0)
摘要://关于线性表的复习 //要点就数组存储,有一个last/len值表明表的长度,或者说表明最后一个元素的物理/存储位置 //数据数组存储是从a[0]开始存储的,求逻辑长度时得让物理长度last加1,即逻辑长度为last+1 //主要要注意的是逻辑和物理的转换; #define MAX 1000 ty 阅读全文
posted @ 2022-06-10 22:43 风乐 阅读(28) 评论(0) 推荐(0)