![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 89
雾里栖
这个作者很懒,什么都没留下…
展开
-
二叉搜索树
比如:要删除节点20,则18为前驱节点,23为后继节点,采用18的值来覆盖节点20的值,在删除左子树的节点18,将双子节点的情况转换为无子节点或只有一个子节点的情况。3、目标节点存在两个子节点,则查找中序遍历中的目标节点的前驱或后继节点对应的元素来覆盖目标节点的值,在删除前驱节点或者后序节点即可。2、目标节点存在一个子节点,将目标节点的父节点的指针指向目标节点的子节点。target小于当前节点的值,则查询左子树,左子树为空,则在此插入。target大于当前节点的值,则查询右子树,右子树为空,则在此插入。原创 2024-06-28 17:57:26 · 257 阅读 · 0 评论 -
数据结构之二叉树
每一个节点在保存自身数据的同时,拥有指向左右子树的指针public:int val;每棵树都会有一个根节点rootpublic:private:if (p!原创 2024-06-27 22:06:32 · 726 阅读 · 0 评论 -
数据结构之跳表
int level;原创 2024-06-25 21:51:25 · 774 阅读 · 0 评论 -
数据结构之链表
双向链表与单链表基本相似,但是最大的区别在于双向链表在节点中除了指向下一节点的next指针外,还有指向前一节点的prev指针,这使得双向链表在可以在任意节点从头尾两个方向进行遍历,是“双向”的。因为数组的内存是连续的,想要访问那个元素,直接从数组的首地址向后偏移就可以访问到了,所以,数组的。但是,向数组插入数据时,待插入位置的元素和他后面的所有元素都需要向后搬移,删除数据时,待删除位置后面的所有元素都需要向前搬移,所以。它是在双向链表的基础上,将双向链表的首节点指向尾节点,尾节点指向首节点。原创 2024-06-24 23:55:05 · 535 阅读 · 0 评论