数据结构与算法
飞翔的荷兰人号z
爱技术,爱生活,爱美剧,爱旅游
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构---连续存储数组的算法
文章目录数据结构之模块一:线性结构数据结构之模块一:线性结构线性结构:把所有节点用一根直线穿起来连续存储(数组)(1)什么叫数组:元素类型相同,大小相等(2)数组的优缺点:优点:数组定义简单,而且访问很方便缺点:数组中所有元素类型都必须相同数组大小必须定义时给出,而且大多数情况下,数组空间的大小一旦确定后就不能更改数组的空间必须是连续的,这就造成数组在内存中分配空间时必须找...原创 2019-06-08 17:00:20 · 349 阅读 · 0 评论 -
数据结构---递归
文章目录递归递归对于编程的重要性递归的定义函数调用的详解递归满足的三个条件循环和递归的比较用递归解决汉诺塔问题递归递归对于编程的重要性递归对你的编码能力是个质的飞跃,如果你想成为一个很厉害的程序员,数据结构是必须要掌握的,计算机特别适合用递归的思想来解决问题,但是我们人类用递归的思想来考虑问题就会感到十分困扰,这也是很多学过递归的人一直都搞不明白的地方!递归的思想是软件思想的基本思想之一,...原创 2019-06-19 21:45:04 · 401 阅读 · 0 评论 -
typedef的用法
文章目录tyoedef 的用法typedef 的四种用法:小心使用 typedef 带来的陷阱tyoedef 的用法C语言允许用户使用 typedef 关键字来定义自己习惯的数据类型名称,来替代系统默认的基本类型名称、数组类型名称、指针类型名称与用户自定义的结构型名称、共用型名称、枚举型名称等。一旦用户在程序中定义了自己的数据类型名称,就可以在该程序中用自己的数据类型名称来定义变量的类型、数...转载 2019-06-10 14:32:21 · 655 阅读 · 0 评论 -
数据结构---栈(c语言)
文章目录栈栈定义栈的分类栈的算法(c语言实现)栈的应用栈栈定义一种可以实现“先进后出” 的存储结构,栈类似于箱子栈的分类静态栈 (类似于用数组实现)动态栈 (类似于用链表实现)栈的算法(c语言实现)#include <stdio.h>#include <stdlib.h>#include <malloc.h>typedef enum ...原创 2019-06-16 11:24:00 · 286 阅读 · 0 评论 -
数据结构---离散存储(链表)
文章目录离散存储(链表)链表定义:分类算法:链表的优缺点:单链表实现代码(c语言实现)离散存储(链表)链表定义:(1)n 个节点离散分配;(2)彼此通过指针相连;(3)每个节点只有一个前驱节点,每个节点只有一个后续节点;(4)首节点没有前驱节点,尾节点没有后续节点。专业术语:首节点:第一个有效节点尾节点:最后一个有效节点头节点:头结点的数据类型和首节点类型一样第一个有效节...原创 2019-06-10 21:49:55 · 717 阅读 · 0 评论 -
算法的时间复杂度和空间复杂度
文章目录算法时间复杂度推导大O阶方法函数调用的时间复杂度分析常见的时间复杂度最坏情况与平均情况算法空间复杂度算法时间复杂度算法时间复杂度定义:在进行算法分析时,语句总的执行次数T(n)是关于问题规模 n 的函数,进而分析T(n)随 n 的变化情况并确定T(n) 的数量级。算法的时间复杂度,也就是算法的时间量度,记作:T(n)=O(f(n))。它表示随问题规模 n 的增大,算法执行时间的增长率...原创 2019-06-04 16:50:19 · 476 阅读 · 0 评论 -
数据结构---队列(c语言)
文章目录队列队列定义分类循环队列的讲解循环队列算法的实现(c语言)队列队列定义一种可是实现“先进先出”的存储结构分类链式队列:用链表实现静态队列:用数组实现静态队列通常都必须是循环队列,为了减少内存浪费循环队列的讲解静态队列为什么是循环队列循环队列需要几个参数来确定两个参数:两个参数不同场合有不同的含义,类似如下:(1)front:指向第一个元素(2) rea...原创 2019-06-16 15:21:12 · 693 阅读 · 0 评论 -
数据结构---树
文章目录树树定义树分类树的存储操作树树是一种非线性结构树定义专业定义:有且只有一个称为根的节点有若干个互不相交的子树,这些子树本身也是一棵树通俗的定义:树是由节点和边组成每个节点只有一个父节点但可以有多个子节点但有一个节点例外,该节点没有父节点,此节点称为根节点专业术语节点 父节点 子节点子孙 堂兄弟深度:树中节点的最大层次(从根节点到最底层...原创 2019-06-23 10:45:41 · 377 阅读 · 0 评论 -
数据结构---常用排序与快速排序(c语言)
文章目录常用排序冒泡排序插入排序选择排序归并排序快速排序常用排序冒泡排序冒泡排序算法思想从数组头部开始,不断比较相邻的两个元素的大小,让较大的元素逐渐往后移动(交换两个元素的值),直到数组的末尾。经过第一轮的比较,就可以找到最大的元素,并将它移动到最后一个位置。第一轮结束后,继续第二轮。仍然从数组头部开始比较,让较大的元素逐渐往后移动,直到数组的倒数第二个元素为止。经过第二轮的比较,就...原创 2019-06-23 12:30:42 · 237 阅读 · 0 评论
分享