
数据结构
文章平均质量分 54
小元进大厂
这个作者很懒,什么都没留下…
展开
-
排序——堆排序
目录1.什么是堆?1.1大堆1.2小堆2.如何调整成小堆或大堆(如何建堆)2.1向下调整3.堆排序4.完整代码1.什么是堆?你可以把堆理解成一颗完全二叉树,它的结点并不一定是满的那么堆又分为:1.大堆 2.小堆1.1大堆大堆就是这颗完全二叉树的父节点都大于他的子节点例如这就是一个大堆1.2小堆小堆与大堆的区别就在于,小堆是每个父节点都小于他的子节点2.如何调整成小堆或大堆(如何建堆)我们将堆看做是一颗完全...原创 2022-03-29 10:50:34 · 380 阅读 · 0 评论 -
希尔排序——直插排序的更好优化
希尔排序原创 2022-03-28 17:24:05 · 559 阅读 · 0 评论 -
排序——直接插入排序
目录1.更好的理解插入排序2.实现插入排序3.代码实现4.完整代码如下1.更好的理解插入排序在开始前我们先了解一下直接插入排序的思想假设我们在打扑克牌,我们在摸牌的时候就要进行排序第一张牌是3第二张牌是6,我们应该放到3的右边第三次摸到5,我们应该放在3的右边,6的左边再摸到4,应该放在3的右边,5的左边2.实现插入排序今天的插入排序,与我们平时打扑克是一样的假设我们有这样一个数组来排序我们采用扑克...原创 2022-03-28 16:45:29 · 1777 阅读 · 0 评论 -
二叉树的遍历
1.前序前序遍历的规则:根--左--右void prevsort(root* p){ if (p == NULL) { printf("NULL "); return; } printf("%c ", p->data); prevsort(p->left); prevsort(p->right);}也就是说,先找根,然后再去找他的左,找到他的左之后,我们再去找左........直到在第n度时已经没有左子节点(NULL)我们再去找此时的右,父原创 2022-03-24 17:16:06 · 295 阅读 · 0 评论 -
二叉树遍历——层序遍历
目录1.什么是层序遍历?2.实现思路3.代码实现1.什么是层序遍历?就是将一颗树按照每一层每一层的方式进行遍历例如这棵树,进行层序遍历的结果应该是那么我们该怎样去实现呢?2.实现思路利用队列先进先出的思想去实现重要思想:一层带一层我们先把书的根节点入进去,然后每出一次都把它的子节点入队,出子节点时也一样3.代码实现因为我们用的是c来实现,所以在实现前请准备好一个队列队列头文件#pragma once#incl.原创 2022-03-24 16:43:58 · 11695 阅读 · 0 评论 -
双向带头循环链表(最“完美”的链表)
“双向”“带头”“循环”链表原创 2022-03-18 10:09:45 · 313 阅读 · 0 评论 -
单链表的增删查改操作
单链表——只能单向访问的链表每个结点中存放数据和下个结点的地址我们今天来实现单链表简单的增删查改操作1.准备工作在开始前我们首先创建一个包含数据和地址的结构体结点typedef int Slisttype;//使得数据类型修改方便typedef struct SlistNode{ Slisttype data;//结点中存储的数据 struct SlistNode* next;//下个结点的地址}SlistNode;然后我们再创建第一个结点(NULL) .原创 2022-03-17 10:35:15 · 1539 阅读 · 0 评论