数据结构与算法
欲盖弥彰1314
如有一味绝境,非历十方生死。
展开
-
数据结构回顾 —— 从双向链表中学设计
封装的好处1、隔离变化 : 将内部数据结构、内部使用函数以及全局变量等最容易变化部分封装起来,让变化的部分不影响系统其它部分。2、降低复杂度:接口最小化软件是软件设计的基本原则之一。封装内部实现细节,只暴露最小接口,让系统简单明了。—— 《系统程序员成长计划》链表数据结构链表的封装typedef struct double_link_list{ void *data; struct double_link_list *prev; struct double_link原创 2020-09-23 20:15:19 · 182 阅读 · 0 评论 -
数据结构——链式队列(C语言)
队列队列和栈一样是一种线性表变异体。现实中很多情况下都要排队,先来后到,队列就是类似这种情况的一种数据结构,数据只允许从同一端插入,删除只允许从另一端删除,插入操作叫 入队 ,删除操作叫出队;插入的一端叫队尾,删除的一端叫队头。队列可以用顺序存储和链式存储实现。链式存储实现代码数据结构typedef struct _data_node{ int data; stru...原创 2020-03-12 15:09:35 · 406 阅读 · 0 评论 -
数据结构——数组实现栈(C语言)
栈——线性表变异体栈是一种插入和删除都在同一端的线性表。这个同一端叫栈顶。栈的插入和删除都在同一端,所以最后插入的数据肯定会最先会被取出,这种逻辑结构叫先进后出——LIFO(Last in first out)。插入操作叫入栈,删除操作叫出栈。实现栈可以使用数组或链表来实现使用数组实现代码判断是否为空static int is_stack_empty(stack_t *s){ ...原创 2020-03-11 14:43:01 · 1139 阅读 · 0 评论 -
数据结构——链式栈(C语言)
栈——线性表变异体栈是一种插入和删除都在同一端的线性表。这个同一端叫栈顶。栈的插入和删除都在同一端,所以最后插入的数据肯定会最先会被取出,这种逻辑结构叫先进后出——LIFO(Last in first out)。插入操作叫入栈,删除操作叫出栈。代码数据结构typedef struct _data_node{ int data; struct _data_node *...原创 2020-03-10 13:10:43 · 254 阅读 · 0 评论 -
算法—时间复杂度
原文地址:https://blog.csdn.net/user11223344abc/article/details/814858421.算法复杂度1.1.什么是算法复杂度?1.2.什么是空间复杂度?1.3.什么是时间复杂度?1.4.时间复杂度与空间复杂度的取舍问题2.如何计算一个算法的时间复杂度?2.0:常见的时间复杂度:2.1:O(1)—常数阶2.2:O(N)—线性阶2.3:O(log2N)...转载 2019-05-06 18:11:51 · 321 阅读 · 0 评论 -
数据结构与算法学习之基本概念和术语
程序设计 = 数据结构 + 算法数据是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。...原创 2019-07-13 11:30:30 · 147 阅读 · 0 评论 -
数据结构与算法学习之算法
数据结构与算法的关系单纯学数据结构应该很快就能学完,但是加上算法就不一样了。数据结构与算法是啥关系呢?不是有说 程序设计=数据结构+算法 ,个人感觉,只谈数据结构不谈算法就是在耍流氓。算法的重要性...原创 2019-07-13 11:29:35 · 253 阅读 · 0 评论 -
数据结构与算法学习之线性表
线性表的定义零个或多个数据元素的有限序列。数学图形定义描述如下:首元素a1无前驱元素,尾元素an无后继元素。中间元素都有唯一的前驱和后继元素。n(n >= 0)是线性表的长度,n = 0时,线性表是空表。线性表的每个数据元素的类型都相同。线性表的存储结构线性表的顺序存储结构线性表的顺序存储结构:用一段地址连续的存储单元依次存储线性表的数据元素。由于线性表的每个数据...原创 2019-09-30 10:49:19 · 370 阅读 · 2 评论