![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
梅菜扣肉林
这个作者很懒,什么都没留下…
展开
-
数据结构和算法(六):二叉树
树二叉树二叉树的性质满二叉树完全二叉树二叉树的存储结构顺序存储的类型定义链式存储的类型定义二叉树的遍历及其应用二叉树链表的创建按满二叉树创建先序遍历创建求二叉树的叶子结点数遍历二叉树的深度 二叉树 二叉树的性质 在非空二叉树上,第i层上至多有2i-1个结点(i>=1) 深度为k的二叉树至多有2k-1个结点(i>=1) 对任何一颗二叉树,若其叶子结点数为n0,度为2的结点数为n2,则n0=n2+1 n个结点的完全二叉树深度为:log2n向下取整再加1 满二叉树 一棵深度为k且有2k-1个结点原创 2020-05-09 11:12:25 · 126 阅读 · 0 评论 -
数据结构和算法(三):栈和队列
栈和队列栈——后进先出栈的顺序存储静态顺序栈定义初始化出栈入栈动态顺序栈定义初始化出栈(弹栈)入栈栈的链式存储栈的结点类型说明栈的初始化出栈(弹栈)压栈 栈——后进先出 表的一段进行插入和删除的操作 栈的顺序存储 静态顺序栈 用一维数组存储,栈底不变,栈顶指针top(整型变量)指向当前栈顶的位置 定义 #define MAX_STACK_SIZE 100 #typedef int ElemType; typedef struct sqstack { ElemType stack_arry[MAX_STA原创 2020-05-08 23:53:16 · 381 阅读 · 0 评论 -
数据结构和算法(二):线性表代码应用
线性表线性表的特点顺序存储结构链式存储结构单链表建立头插法尾插法查找按序号查找按值查找插入删除按序号删除按值删除变形删除单链表中值为key的所有结点删除单链表中所有值重复的结点,使得所有结点的值都不相同单链表的合并循环链表双向链表类型定义基本操作插入删除 线性表的特点 数据元素有序、有限 唯一的“第一个元素” 唯一的“最后一个元素” 除第一个元素外,每个元素都有唯一的直接前驱 除最后一个元素外,每个元素都有唯一的直接后继 顺序存储结构 插入的时间复杂度为O(n) 删除的时间复杂度为O(n) 链式存储结构原创 2020-05-08 19:11:35 · 831 阅读 · 0 评论 -
数据结构和算法(一):算法分析
算法分析之时间复杂度数学基础四个定义三个法则模型要分析的问题最大子序列问题运行时间的计算简单举例四个一般法则最大子序列求和问题算法1:穷举所有可能算法2:分而治之算法3:递归调用算法4:简单有效的算法运行时间中的对数对分查找欧几里得算法幂运算 数学基础 四个定义 定义:如果存在正常数c和n0使得当N>=n0 时T(N)<=cf(N),则记为T(N)=O(f(N)); 定义:如果...原创 2020-05-05 08:02:32 · 471 阅读 · 0 评论