
数据结构
文章平均质量分 70
Ljw...
不知道写什么
展开
-
AVL树
【代码】AVL树。原创 2024-09-01 15:59:38 · 780 阅读 · 0 评论 -
红黑树 数据结构
/枚举//节点颜色RED,BLACK//红黑树节点的定义, _kv(kv){}插入的代码实现检测新节点插入后,红黑树的性质是否造到破坏因为新节点的默认颜色是红色,因此:如果其双亲节点的颜色是黑色,没有违反红黑树任何性质,则不需要调整;但当新插入节点的双亲节点颜色为红色时,就违反了性质三不能有连 在一起的红色节点,此时需要对红黑树分情况来讨论:约定:cur为当前节点,p为父节点,g为祖父节点,u为叔叔节点。原创 2024-09-16 20:39:22 · 902 阅读 · 0 评论 -
反转链表和哨兵位
int val;} ListNode;原创 2024-06-01 12:33:26 · 1379 阅读 · 0 评论 -
链表逆序用哨兵位头节点
在C语言中实现链表的逆序,使用哨兵头节点是一种常见的做法。哨兵头节点可以简化代码逻辑,特别是当链表为空时,可以避免空指针异常。下面是一个使用哨兵头节点逆序单链表的C语言实现。原创 2024-06-02 10:50:08 · 698 阅读 · 0 评论 -
单链表的实现
【代码】单链表的实现。原创 2024-06-07 10:49:56 · 322 阅读 · 0 评论 -
双链表的实现
【代码】双链表的实现。原创 2024-06-07 10:50:44 · 233 阅读 · 0 评论 -
顺序表、链表、栈和队列总结
顺序表、链表、栈和队列都是线性数据结构,但它们在管理和访问数据方面有不同的特点和用途。的结构实现更优一些,因为如果使用数组的结构,出队列在数 组头上出数据,效率会比较低。链表是由一系列节点组成,每个节点包含数据域和指向下一个节点的指针。是一种线性表,在C语言中通常通过数组来实现。的结构实现更优一些。栈的实现一般可以使用数组或者链表实现,相对而言。队列是一种先进先出(FIFO)的数据结构。栈是一种后进先出(LIFO)的数据结构。队列也可以数组和链表的结构实现,使用。下面是一个简单的顺序表在C语言中的。原创 2024-06-08 10:24:10 · 1654 阅读 · 0 评论 -
二叉树小结
二叉树是一种特殊的树,每个节点最多有两个子节点,通常被称为左子节点和右子节点。例如,如果一个应用需要频繁的插入和删除操作,并且对内存使用有严格的要求,那么可能会选择一种平衡二叉树,如红黑树,因为它在保证平衡的同时,也尽量减少了内存的消耗。:如果需要高性能的搜索和排序操作,可以选择平衡二叉树,如AVL树或红黑树,因为它们能够保持树的平衡,从而保证操作的时间复杂度。:也称为排序二叉树或搜索二叉树,它的特点是左子树上所有节点的值均小于或等于根节点的值,右子树上所有节点的值均大于根节点的值。原创 2024-06-09 10:25:48 · 1121 阅读 · 0 评论 -
树的4种遍历
树的四种遍历方式的总结树的四种遍历方式的总结树的四种遍历方式(前序遍历、中序遍历、后序遍历和层序遍历)是理解和操作二叉树的基础。以下是这四种遍历方式的总结:1. 前序遍历(Pre-order Traversal)访问顺序:根节点 -> 左子树 -> 右子树递归实现简单直观,先访问根节点,然后递归遍历左子树,最后递归遍历右子树。非递归实现通常使用栈来辅助遍历,先将根节点压栈,然后在循环中出栈并访问当前节点,接着将右子节点和左子节点依次压栈(注意顺序)。原创 2024-06-10 09:53:56 · 1373 阅读 · 0 评论 -
十种排序方法
在C语言中,有多种排序算法可供选择,每种都有其独特的特点和应用场景。原创 2024-10-23 10:21:47 · 1672 阅读 · 80 评论 -
十种排序方法
在C语言中,有多种排序算法可供选择,每种都有其独特的特点和应用场景。原创 2024-09-16 20:44:09 · 1063 阅读 · 0 评论 -
日期类的实现
知识点:// 后置++,后置++是先使用后+1,因此需要返回+1之前的旧值,故需在实现时需要先将this保存一份,然后给this + 1。知识点:拷贝构造,内置类型,自定义类型都会处理。默认赋值重载跟拷贝构造一个性质,拷贝构造是定义时,赋值重载是两个已经存在的。知识点:流插入流提取只能写在类外,因为需要两个接收值,要是在类内就会有隐藏的this指针,要用friend,友元函数声明。首先要实现一个获取月份天数的函数,要实现是否是闰年或平年,以及二月份的天数。知识点:日期+=天数,+=改变了自身,*原创 2024-06-30 10:05:33 · 1670 阅读 · 23 评论 -
约瑟夫环问题
目录约瑟夫环问题是一个很经典的问题:一个圈共有N个人(N为不确定的数字),按顺序第一个人的编号为1,第二个人的编号为2,第三个人的编号就为3,以此类推第N个人的编号就为N,现在提供一个数字K,从第一个人开始报数(从1到K),依次类推,报到M这个数字的人出局,紧接着从出局的这个人的下一个人重新开始从1报数,和上面过程类似,报到K的人出局,直到N个人全部出局,请问,这个出局的顺序是什么?原创 2024-06-29 18:06:25 · 918 阅读 · 3 评论 -
队列数据结构
FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为队头。队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出。的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低。队列也可以数组和链表的结构实现,原创 2024-06-05 11:16:37 · 1059 阅读 · 12 评论 -
顺序表数据结构
1.线性表1.线性表线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的, 线性表在物理上存储时,通常以数组和链式结构的形式存储。2.顺序表。原创 2024-06-04 12:50:58 · 664 阅读 · 28 评论