这篇文章我们来学习排序。1. 排序的概念及其运用1.1 排序的概念排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在 ......
28
0
0
2024-05-03
前言我们在前面文章学到的数据结构:顺序表、链表,不管是单链表还是带头双向循环链表,以及后面的栈和队列。它们呢,其实都属于一类数据结构——线性表。那从这篇文章开始:我们将开始学习数据结构中的非线性结构,今天我们先来学习第一种——二叉树。1. 树的概念及结构那要学习二叉树,我们首先要知道什么是树。所以我们先来了解一下数据结构中树的概念及结构。如果不提数据结构,只 ......
26
0
0
2024-05-03
一.链表的概念和结构链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表 中的指针链接次序实现的链表其实有很多种类: 1.单向 双向 2.带头 不带头 3.循环 不循环 其中共能组合出8种形式的链表; 这篇文章讲的是结构最简单的链表,也就是单向不带头不循环链表,即单链表。单链表中的元素称为节点,节点有一个数据data,还有一个结构体 ......
36
0
0
2024-04-30
一.前言其实顺序表的增删查改和前面的通讯录差不多,可以说通讯录的底层原理就是顺序表。如果你会写通讯录,那么顺序表也不是问题。所以这篇文章不会讲得太详细,如果你有不懂的地方,请看前面通讯录的实现过程,那里讲的非常详细。通讯录二.顺序表1.概念及结构顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储; 在数组上完成数据的增删查 ......
42
0
0
2024-04-30
一.前言从这篇文章开始,C语言的学习就结束了,接下来将会开启数据结构与算法的学习。早期,计算机刚被发明出来,内存空间并不是很大,所以不仅追求程序运行时的时间效率,还追求空间效率,但发展到今天,已经不太追求空间效率了,时间效率的追求是不变的。下面就让我们一起学习时间复杂度和空间复杂度是什么吧~二.时间复杂度1.概念1.时间复杂度是一个函数(注意这不是编程语言里 ......
41
0
0
2024-04-30
线性数据结构Linear DS作用:将数据项以某种线性的次序组织起来1.栈Stack栈Stack维持了数据项后进先出LIFO的次序 stack的基本操作包括push,pop,isEmpty栈的两种实现1.左为栈顶,时间复杂度为O(n)#左边为顶,右边为低 class Stack: def __init__(self): self ......
88
0
0
2024-04-12
顺序栈的C语言实现导言大家好,很高兴又和大家见面啦!!! 在上一个篇章中,我们介绍了栈的基本概念,以及栈中的重要术语。通过介绍我们知道了栈的本质也是一种线性表,只不过它是一种操作受限的线性表。因此栈的实现方式与线性表的实现实际上是大同小异的。下面我们就来介绍一下如何通过C语言实现栈。一、栈的分类栈作为一种操作受限的线性表,它在存储时根据存储方式的不同,分为两 ......
69
0
0
2024-04-04
单链表基本操作的实现导言大家好,很高兴又和大家见面啦!!! 在上一篇中,我们详细介绍了单链表的两种创建方式——头插法与尾插法,相信大家现在对这两种方式都已经掌握了。今天咱们将继续介绍单链表的基本操作——查找、插入与删除。在开始今天的内容之前,我们先通过尾插法创建一个单链表,如下所示://定义单链表数据类型 typedef struct LNode{ i ......
67
0
0
2024-03-06
0 概述链表作为一种基础的数据结构,在很多地方会用到。如在Linux内核代码,redis源码,python源码中都有使用。除了单向链表,还有双向链表,本文主要关注单向链表(含部分循环链表题目,会在题目中注明,其他情况都是讨论简单的单向链表)。1 定义先定义一个单向链表结构,如下,定义了链表结点和链表两个结构体。这里我没有多定义一个链表的结构体,保存头指针,尾 ......
67
0
0
2024-02-26
⛺️生活的理想,就是为了理想的生活!📋 前言🌈hello! 各位铁铁们大家好啊,不知道大家对栈和队列的学习都学过了吧?那么用栈来实现队列你会做嘛? ⛳️栈和队列我们前面说了都是一种特殊的线性表,而在学习过程中用栈来尝试实现队列是很有必要来考验一下我们对栈和队列的掌握的!文章目录📋 前言一、 栈实现队列具体要求二、栈实现队列的核心思想2.1 如何插入的思想2. ......
80
0
0
2024-02-25
⛺️生活的理想,就是为了理想的生活!📋 前言🌈hello! 各位铁铁们大家好啊,栈和队列我们都学过了那么试试用队列实现栈你会嘛?。文章目录📋 前言一、队列实现栈的具体功能二、队列实现栈的具体思路2.1 实现栈区的具体方法2.1 栈区的插入思路2.1 栈区的删除思路三、队列实现栈(具体代码)3.1 队列的准备3.2 栈区的初始化3.3 栈区的插入3.4 栈区的 ......
80
0
0
2024-02-25
⛺️生活的理想,就是为了理想的生活!📋 前言🌈hello! 各位宝子们大家好啊,栈区的实现我们前面已经讲了,而栈和队列都是特殊的线性表,今天我们就来看看队列是怎么实现的! ⛳️队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)的特点。 文章目录📋 前言一、 队列的概念及结 ......
80
0
0
2024-02-25
⛺️生活的理想,就是为了理想的生活!📋 前言🌈hello! 各位铁铁们大家好啊,今天来给大家更新一下栈这个数据结构,栈实际上是实现一种后进先出效果。 ⛳️一般我们在C语言学习期间函数开辟的空间就是在栈区,那么我们今天就来领略一下栈的风采吧! 文章目录📋 前言一、栈的概念及结构二、栈的实现2.1 栈的定义与初始化2.2 栈的入栈实现2.3 栈的出栈实现2.4 ......
85
0
0
2024-02-25
⛺️生活的理想,就是为了理想的生活!文章目录📋 前言一、什么是循环队列?二、如何实现循环队列?2.1 循环队列的结构2.2 循环队列的初始化2.3 如何检查队列是非为空2.4 如何检查队列是否满了2.5 循环队列如何插入数据2.6 循环队列如何删除数据2.7 获取循环队列头元素2.8 获取循环队列尾元素2.9 如何销毁循环队列三、循环队列练习循环队列结构代码 ......
91
0
0
2024-02-25
⛺️生活的理想,就是为了理想的生活!文章目录📋 前言1. 什么是链表1.1 链表的物理结构1.2 链表的种类2. 链表的实现一. SList.h 单链表的声明3.1 定义链表结构3.2 单链表函数的声明二. SList.h 单链表的定义2.1 动态申请链表一个节点2.2 单链表打印2.3 单链表尾插2.4 单链表的头插2.5 单链表的尾删2.6 单链表头删2 ......
67
0
0
2024-02-25