![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
记录数据结构的学习
makunIT
努力学习!
展开
-
冒泡排序、插入排序、选择排序
排序1 冒泡排序1.1冒泡排序的流程及代码2 插入排序2.1插入排序的流程及代码3 选择排序3.1选择排序的流程及代码1 冒泡排序它是通过一系列的”交换“动作完成的。首先第一个关键字和第二个关键字比较,如果第一个大,则二者交换,否则不交换;然后第二个关键字和第三个关键字比较,如果第二个大,则二者交换,否则不交换…一直按这种方式进行下去,最终最大的那个关键字被交换到了最后,一趟起泡排序完成。经过多趟这样的排序,最终使整个序列有序。这个过程中,大的关键字像石头一样”沉底“,小的关键字像气泡一样逐渐向上”浮动原创 2020-06-17 11:54:37 · 4170 阅读 · 2 评论 -
快慢指针的常见应用
快慢指针:快慢指针是解决数组和链表问题的常用方法,该方法也被称为“龟兔算法”。从名称就可以看出气基本思想是使用两个指针以不同的速度在数组或链表中移动。在处理循环链表或数组时,此方法非常有用。快慢指针的应用:(1)判断单链表是否存在环如果链表存在环,就好像操场的跑道是一个环形一样,此时让快慢指针都从链表头开始遍历,快指针每次向前移动两个位置,慢指针每次向前移动一个位置;如果快指针到达NULL,说明链表以NULL为结尾,没有环。如果快指针追上慢指针,则表示有环。代码如下:bool HasCircle(N原创 2020-06-16 21:53:39 · 610 阅读 · 0 评论 -
连续存储数组的算法
最近一直在学习数据结构,所以想把自己学习的知识用微博记录下来此微博记录对数组的各种操作具体如下:void init_arr();//对数组进行初始化bool append_arr();//在数组后追加bool insert_arr();//往数据中添加元素bool delete_arr();//删除数组中的元素bool is_empty();//判断数组中是否为空bool is_fu...原创 2020-04-14 20:44:51 · 264 阅读 · 0 评论 -
数据结构——二叉树
文章目录二叉树的定义(1)特殊的二叉树二叉树的主要性质二叉树的存储结构(1)顺序存储结构(2)链式存储结构二叉树的遍历算法二叉树的定义二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。(1)二叉树的每个个结点最多只有两颗子树,即二叉树中结点的度只能为0、1、2.(2)子树有左右顺序之分,不能颠倒。根...原创 2020-03-25 09:03:46 · 474 阅读 · 0 评论 -
数据结构——链表(单链表)
文章目录原创 2020-03-24 10:47:47 · 1000 阅读 · 0 评论 -
数据结构——线性表(顺序表)
文章目录顺序表的定义顺序表的结构体定义顺序表的操作顺序表的定义顺序表就是把线性表中的所有元素按照其逻辑顺序,依次存储到从指定的存储位置开始的一块连续的存储空间中。这样线性表中第一个元素的存储位置就是指定的存储位置,第i+1个元素的存储位置紧接在第i个元素的存储位置的后面。顺序表就像如下图中的房子,每个房间左边的数字就是该房间离0点的距离,同时也代表了房间号,房间的长度为1,因此,只要知道0点...原创 2020-03-23 10:05:15 · 369 阅读 · 0 评论