![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 85
雨轩(爵丶迹)
23届IoT专业,随时欢迎交流
展开
-
排序总结篇:八大排序
数据结构八大排序前言排序的概念生活中常见的排序插入排序1. 直接插入排序2、希尔排序选择排序1、直接选择排序2、堆排序交换排序1、冒泡排序2、快速排序目录目录顺序表单链表(不带附加头结点)双链表(带附加头结点)栈(顺序表实现)队列(链式,不带附加头结点)二叉树二叉树的非递归遍历八大排序前言生活中有很多排序,比如排队做操,矮的在前,高的在后,再比如玩扑克牌,插入牌的例子。排序的概念排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增原创 2021-09-30 20:01:24 · 2239 阅读 · 18 评论 -
二叉树的非递归遍历(面试常考)
二叉树的非递归遍历前言例子前序遍历(栈实现)中序遍历(栈实现)后序遍历(栈实现)层次遍历(队列实现)目录目录顺序表单链表(不带附加头结点)双链表(带附加头结点)栈(顺序表实现)队列(链式,不带附加头结点)二叉树二叉树的非递归遍历前言通常,对于二叉树的实现,面试官并不会去问你递归怎么实现,看了我前面写的二叉树,你就知道递归写起来比较简单。对于二叉树,面试官一般会问你非递归算法是怎么实现的,因为非递归算法需要用到栈、队列,所以问起来比较有意义,可以联系一原创 2021-08-19 21:53:18 · 1352 阅读 · 17 评论 -
Day6:数据结构之二叉树
二叉树前言树的基本概念1、树的定义2、树的相关术语二叉树的基本概念1、二叉树的定义2、二叉树的性质3、特殊的二叉树二叉树的实现方式二叉树的基本操作头文件1、先序建立二叉树2、先序遍历3、中序遍历4、后序遍历5、先序遍历(广义表)6、二叉树的深度(高度)7、二叉树的结点数8、二叉树的叶结点个数9、度为1的结点个数10、度为2的结点个数11、返回每条叶结点到根结点的路径12、交换左右结点13、双序遍历14、销毁树二叉树的注意事项目录目录顺序表单链表(不带附加头结点)双链表(带附加头原创 2021-08-16 17:34:55 · 3874 阅读 · 26 评论 -
Day5:数据结构之队列
队列前言1、队列的概念2、队列的实现方式3、队列的基本操作头文件1. 初始化队列2. 队尾入队列3. 队头出队列4. 获取队列头部元素5. 获取队列队尾元素6. 获取队列有效个数7. 判断队列为空8. 销毁队列4、队列面试题(结合栈)5、队列和栈的区别目录目录顺序表单链表(不带附加头结点)双链表(带附加头结点)栈(顺序表实现)队列(链式,不带附加头结点)前言这一节我们来学习队列,以及队列和栈的区别。1、队列的概念队列是另一种限定存取位置的线性表,只允许在原创 2021-08-14 18:41:25 · 754 阅读 · 10 评论 -
Day4:数据结构之栈
栈前言1、栈的定义2、栈的基本实现头文件1. 初始化2. 入栈3. 出栈4. 获取栈顶元素5. 检查站中有效个数6. 检查栈是否为空7. 销毁栈面试题扩展目录目录顺序表单链表(不带附加头结点)双链表(带附加头结点)栈(顺序表实现)前言大家好,上一次我们学习到了双链表,今天我们来学习栈的一些性质和注意事项。1、栈的定义栈是一种先进后出并且只能在末端进行插入和删除的线性表。允许插入和删除的一端叫栈顶(top),而不允许插入和删除的另一端叫栈底(bottom)。栈一原创 2021-08-12 15:51:25 · 687 阅读 · 8 评论 -
Day3:数据结构之带头双链表
带头双链表前言1、双链表的基本概念2、双链表的好处3、双链表的基本操作头文件定义1. 初始化2. 创建一个新结点3. 打印4. 头插5. 头删6. 尾插7. 尾删8. 查找9. 插入10. 删除11. 销毁总结目录目录顺序表单链表(不带附加头结点)双链表(带附加头结点)今天给大家讲的是双链表前言上一节,我们说到单链表,知道了单链表的一些缺点和注意事项,这一节我们来学习双链表,看看双链表是否能完美解决单链表的一些问题。1、双链表的基本概念在双链表中有两个指原创 2021-08-09 21:48:01 · 780 阅读 · 20 评论 -
剑指offer--缺失的数字
1、消失的数字数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?示例:输入:[9,6,4,2,3,5,7,0,1]输出:8思路一:异或,设置一个变量num,先将索引 0 - numsSize 与 num 异或,在将nums[ i ] 与 num 异或,最后在循环外,在将 num 与 numsSize 进行异或,num就是缺失的数字。int missingNumber(int* nums, int numsSize){原创 2021-08-07 23:42:22 · 352 阅读 · 2 评论 -
Day2:单链表的基本操作
单链表前言1、单链表的定义2、单链表的特点3、单链表的基本操作1、头文件2、初始化3、打印4、创建新节点5、尾插6、尾删7、头插8、头删9、插入10、删除11、查找12、销毁13、获取链表节点个数4、单链表的注意事项5、扩展6、源码目录目录顺序表单链表(不带附加头结点)前言上一节实现了顺序表的基本操作,这一节我们来学习单链表(不带头结点),实现单链表的一些基本操作以及注意事项。1、单链表的定义单链表是链表中最简单的链表表示,也叫线性链表。链表是不连续的,用指针表示原创 2021-08-05 20:49:30 · 909 阅读 · 7 评论 -
Day1:顺序表的基本实现
顺序表的实现1、头文件2、初始化3、销毁4、打印5、尾插6、尾删7、头插8、头删9、查找10、插入11、删除12、检查容量1、头文件我这里主要说的是动态的顺序表,当然静态顺序表的操作基本上是一样的,只是静态顺序表无法进行增容,数量是控制了的,会造成空间的浪费。静态顺序表#pragma once //防止头文件包含#include<stdio.h>#define MaxSize 100typedef int SLDataType;//利用typedef给int重命名为S原创 2021-08-01 18:28:44 · 525 阅读 · 11 评论