数据结构
空_宇
这个作者很懒,什么都没留下…
展开
-
栈的应用——制作计算器
栈的应用——制作计算器目标和要求原理分析和实现目标和要求目标:设计并实现一个整型算术表达式计算器。要求:只处理整型算术运算表达式,即运算符至少包含±*/()要求抽象出链栈结构进行独立实现。存储结构采用链式存储,基于链栈完成计算器功能。。原理为解决这个问题,我们需要用两个栈,一个操作数栈栈存储数据,一个运算符栈存储符号,然后根据优先级来进行运算。流程如下:如果是数字,压进操作数栈中;如果是“+,-”,则观察运算符栈中是否有相同级或更高级的运算符,即“+,-,*,/”,如果有,先运原创 2020-09-06 13:31:21 · 593 阅读 · 0 评论 -
栈的探究——顺序栈和链栈
顺序栈和链栈基本介绍顺序栈初始化栈判空判满取栈顶元素入栈出栈总代码及实现代码运行结果基本介绍栈是最基础的数据结构,他有两种存储结构——顺序结构和链式结构,总的说有判空,判满,取栈顶元素,进栈和出栈。介绍栈的有许许多多的博客,我这里就简单说一会,重点是上代码。栈就是先进后出,只能在一端进行插入和删除元素,然后知道上面的基本操作基本就没有什么问题了,应用得自己多练习才可。顺序栈初始化栈template<typename T>inline stack<T>::stack()原创 2020-08-28 20:53:41 · 1328 阅读 · 0 评论 -
C++链表的基本操作——链表的构造,链表的析构,链表的插入,链表的删除,链表的就地逆置,头插法逆置
C++链表的基本操作链表的构造函数链表的析构函数创建链表链表的插入链表的删除链表的就地逆置链表的头插法逆置完整代码如下下面附上运行结果下面给了链表的一些基本操作:链表的构造函数template <typename T>List<T>::List(){ head = new node<T>; head->next=NULL; count=0;}链表的析构函数template <typename T>List<T>::~原创 2020-07-21 23:27:48 · 2730 阅读 · 0 评论 -
数据结构整体框架总结
数据结构整体框架总结数据结构的存储结构数据结构的基本操作如何遍历 + 访问?数据结构的存储结构数组(顺序存储)和链表(链式存储)至于数组和链表的区别,我的另一篇文章中有详细的讲解——链表小结——常见链表,如何实现LRU缓存淘汰算法,以及如何书写链表的代码,由于这篇文章重点将总体的框架,这里就不再说了,有兴趣的同学可以去我的那片文章中寻找答案,链接我放在下面:链接: link.数据结构的基本操作遍历加访问,具体一点的话就是增删查改,你可以想想,我们做的一系列操作,不就是在对数据结构进行一系列的这些原创 2020-07-18 23:46:35 · 331 阅读 · 0 评论 -
链表小结——常见链表,如何实现LRU缓存淘汰算法,以及如何书写链表的代码
链表学习与数组的对比基本介绍分析几种常见的链表单链表循环链表双向链表双向循环链表如何实现LRU缓存淘汰算法LRU缓存淘汰算法如何实现与数组的对比基本介绍说到数据结构的储存方式,我们很容易就想到了数组和链表这两个最基本的存储方式,在进行相关内容的学习后,我们也很容易的想到二者的优缺点:数组:适合数据的查找,但是进行数据的删除和插入却十分耗费时间。在申请内部空间的时候,必须要确定具体的大小,一经声明就要占用整块连续内存空间。如果声明的数组过大,系统可能没有足够的连续内存空间分配给它,导致“内存不足”,原创 2020-07-17 16:38:41 · 415 阅读 · 0 评论 -
数据结构复杂度的分析
数据结构复杂度的分析前言为什么要进行复杂度的分析1. 测试结果非常依赖测试环境2. 测试结果受数据规模的影响很大复杂度分析法则时间复杂度的分析细分时间复杂度如何使用平均时间复杂度和均摊时间复杂度空间复杂度前言在进行数据结构的学习过程中,我们常常需要对代码进行复杂度的分析,这个复杂度的分析有两种,一种是时间复杂度,一种是空间复杂度,在分析这两个之前,我们先来谈谈,我们为什么要进行空间和时间复杂度的分析呢?为什么要进行复杂度的分析你可能会说,我把代码跑一遍,通过统计、监控,就能得到算法执行的时间和占用的原创 2020-07-11 15:45:10 · 599 阅读 · 0 评论