数据结构
记录数据结构的学习过程
贝勒里恩
用生命写代码,用灵魂做界面!
展开
-
数据结构--栈和队列
文章目录一、栈1.1、栈的基本概念1、栈的定义2、栈的基本操作3、栈的实现二、队列2.1、队列的基本概念一、栈1.1、栈的基本概念1、栈的定义栈(Stack),是只允许在一端进行插入或者删除的线形表。首先,栈是一种线形表,但限定这种线形表只能在某一端进行插入和删除操作,如下图示:栈顶(Top):线形表允许插入和删除的那一端。栈低(Bottom):固定的,不允许进行插入和删除的另一端。空栈:不含任何元素的空表。2、栈的基本操作操作功能InitStack(&S)初原创 2020-06-24 21:27:17 · 260 阅读 · 0 评论 -
数据结构--线性表
文章目录一、线性表的定义和基本操作1.1、线性表的定义1.2、线性表的基本操作二、线性表的顺序表示三、线性表的链式表示3.1、单链表的定义3.2、双链表3.3、循环链表3.4、静态链表四、顺序表和链表的比较一、线性表的定义和基本操作1.1、线性表的定义线性表是具有相同的数据类型的n(n>=0)个数据元素的有限序列,其中n为表长,当n=0时,该线性表是一个空表。若用L命名线性表,则其一般表示为:L = (a1,a2,...,ai,ai+1,...,an)式中,a1是唯一的“第一个”数据元素,原创 2020-05-18 13:12:21 · 795 阅读 · 0 评论 -
数据结构--绪论
文章目录一、数据结构的基本概念1.1、基本概念和术语1.2、数据结构三要素二、算法和算法评价2.1、算法的基本概念2.2、算法效率的度量一、数据结构的基本概念1.1、基本概念和术语1. 数据数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。2. 数据元素数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。例如,学生记录表就是一个数据元素,它由学号、姓名、性别等数原创 2020-05-18 09:52:12 · 329 阅读 · 0 评论 -
排序算法之快速排序
排序算法之快速排序分析思路:快速排序思想,选择一个标值,然后从两边依次找出比标值大的值和比标值小的值,然后进行交换,如此一轮之后,序列就变为比标值小的在标值的左边,比标值大的在标值右边。然后我们分别对左子列递归,对右子列递归。具体代码:void Quick_Sort(int array[], int left,int right){ if (left < right) { i...原创 2020-03-04 16:34:03 · 200 阅读 · 0 评论 -
排序算法之直接插入排序
排序算法之直接插入排序分析思路:直接插入排序,顾名思义就是拿到结点选择好合适的位置,然后插入。对于待排序序列,我们我们将其分为两部分,一部分只包含第一个结点,另一部分包含剩下的其它结点。当只包含一个结点时,可以认为其是有序的,所有只需在另一个未排好序的序列中逐个摘出,插入到排好序的序列中即可。具体代码:void Right_Insert_Sort(int array[], int n){...原创 2020-03-04 16:21:37 · 130 阅读 · 0 评论 -
排序算法之冒泡排序
排序算法之冒泡排序分析思路:冒泡排序,顾名思义就是像冒气泡一样,可以从前冒到后,也可以从后冒到前。这里以从后冒到前,从小到大排序举例:从最后一个值开始,不断将其与前一个值进行比较,如果后面的值比前面的值要小,那就进行交换,这样遍历一次之后,序列第一个位置就已经是最小的值了,如此循环,O(n2)之后就可以全部排好序。编程思路:顺序存储:如果序列为数组,我们可以采用两重for循环。第一重f...原创 2020-03-04 09:27:31 · 252 阅读 · 0 评论 -
排序算法之简单选择排序
排序算法之简单选择排序分析思路:简单选择排序,顾名思义我们只需从序列中逐次选择出最小的值,并放在合适的位置上。例如:第一次遍历从n个数中找出最小的值,放在第一个位置上;第二次遍历从n-1个数中找出最小的值,放在第二个位置上。编程思路:顺序存储:当序列为数组时,我们可以采取两个for循环,第一重for循环记录排好序的数据的末尾,第二重for循环用于遍历未排好序的数据以找出最小值。找到最小值后...原创 2020-03-04 08:53:00 · 202 阅读 · 0 评论