![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
LinYang_code
这个作者很懒,什么都没留下…
展开
-
顺序表和链表的区别
复习了数据结构后,发现,顺序表和链表的区别是一个非常重要的概念 接下来详细讲解一下: 1.存储数据的结构:顺序表:底层采用连续的地址空间 链表:底层采用链式结构 2.随机访问:顺序表支持随机访问 链表不支持随机访问 3.插入和删除:顺序表一般的的插入和删除需要搬移大量的元素,尾插和尾删不需要搬移元素,并且当插入元素时要考虑是否扩容问题,时间复杂度为O(n) 链表的插入和删除不需要搬移元素,只需要修改一下指针的指向,不需要考虑扩容问题,时间复杂度为O(1) 4.元素查找方面:两个的效率是一样的,时间复杂度为O原创 2020-08-28 20:36:48 · 1351 阅读 · 0 评论 -
数据结构经典算法
在学习数据结构中我感觉最重要的就是排序算法,以下我列举最常见的几种排序算法及他们各自的思想 接下来我一一介绍这几种排序算法: 1.直接插入排序 直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一 个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。 代码实现: void InsertSort(int *array, int size) { //直接从第二个元素开始,因为第一个元素已经有序 for (int i = 1; i <原创 2020-05-20 17:35:03 · 813 阅读 · 0 评论 -
传值or传址
在我们学习C语言时,总是会有这样的疑问?到底是传值还是传址呢,其实这个问题并不难解决,我们用具体实例来解决,看看我的理解思路吧。原创 2020-04-19 22:55:15 · 136 阅读 · 0 评论 -
单链表的实现
单链表:单向不带头结点非循环的链表 以下是我对其各个操作的实现: 头文件:原创 2020-04-07 17:04:09 · 137 阅读 · 0 评论 -
链表的概念
1.链表的概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 2.链表的分类:链表总共可分为八种。 a. 单向、双向 b. 带头、不带头 c. 循环、非循环 3.常用的链表有两种: **a. 无头单向非循环链表:**结构简单,一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构. **b.带头双向循环链表:**结构最复杂,一般用在...原创 2020-04-06 17:06:37 · 1218 阅读 · 0 评论 -
顺序表的基本操作实现
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 顺序表一般可以分为: 静态顺序表:使用定长数组存储。 动态顺序表:使用动态开辟的数组存储。 以下是我对顺序表的实现(采用动态存储结构) 头文件: #pragma once #include<stdio.h> #include<Windows.h> #i...原创 2020-04-06 16:49:42 · 210 阅读 · 0 评论 -
括号匹配问题、栈实现队列
在对栈的学习时,见到了两个栈的应用场景,一个是括号匹配问题,一个是用栈来实现队列。 括号匹配问题的解决: 首先基于栈的基础上,实现括号匹配问题,要使用到栈的基本操作,入栈,获取栈顶元素,出栈等。 首先,先将左括号入栈,然后进行括号匹配,如果匹配成功,则让已经匹配成功的左括号出栈,继续进行匹配,直到外部的括号匹配完毕。 匹配完毕后,如果栈不为空,说明有左括号未被匹配成功,则表明匹配失败,如果为空则...原创 2020-04-05 22:58:03 · 353 阅读 · 0 评论 -
栈的基本操作实现
栈的概念:是一种特殊的线性表,只允许在固定的一端进行插入和删除操作。(尾插和尾删)进行插入和删除的一端称为栈顶,另一端称为栈底。 栈的结构:栈是先进后出。 栈的实现:栈可以使用链表和数组实现,相对而言数组的结构更有利于栈的实现。 以下是我对栈的实现: 头文件 #pragma once #include<stdio.h> #include<assert.h> #includ...原创 2020-04-05 21:58:55 · 202 阅读 · 0 评论 -
循环队列、队列实现栈
在对队列的学习时认识到了两种应用队列的场景,一是循环队列,另一个是用队列来实现栈。 循环队列:因为在对队列进行删除操作时会造成空间的浪费,所以引入了循环队列的思想。 循环队列中,有一个头front、一个尾rear还有一个计数器count,起始时front和rear在同一位置,count等于0。进行插入时,rear向后移动,count++;删除时front向后移动,count–。count可以用来...原创 2020-04-05 21:45:47 · 430 阅读 · 0 评论 -
数据结构之队列的实现
队列:是一种只允许在一端进行插入数据,在另一端进行删除数据的特殊线性表。(头删和尾插) 队列的实现:队列是一种先进先出的结构。对于队列的实现可以采用链表或者顺序表的方式来实现,但是顺序表进行删除操作,会大量搬移元素,效率低,所以采用链表的方式来实现。 以下是队列的实现: typedef int DataType;//类型重定义,方便之后进行修改数据的类型 //这是队列底层使用的链表中节点的结构...原创 2020-04-05 17:03:19 · 238 阅读 · 0 评论