![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 78
阿特密斯X
伯克利
展开
-
【数据结构】线性结构:存储&运算&时间复杂度
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shamingai/article/details/48914005逻辑结构:表内元素的关系,共有集合、线性结构(线性表、栈、队列、数组)、树形结构(树、二叉树、森林)、图结构(图)四种;存储结构:是数据在计算机中的实现,也叫物理结构,常用的是顺序存储和链式存储。顺序存储指的是所有存储结...原创 2018-09-15 19:18:50 · 474 阅读 · 0 评论 -
顺序进栈乱序出栈的所有可能顺序之算法
题目:设有编号为1,2,3,4的四辆列车,顺序进入一个栈式结构的车站,具体写出这四辆 列车开出车站的所有可能的顺序。 今天看到这个数据结构练习题,一开始认为只有穷举然后验证的方法。 习题后面给出的答案: 至少有14种。 ①全进之后再出情况,只有1种: 4,3,2,1 ②进3个之后再出的情况,有3种,3,4,2,1 3,2,4,1 3,2,1,4 ③进2个之后再出的情况,有5种,2,...原创 2018-09-15 19:53:18 · 3660 阅读 · 2 评论 -
给定入栈顺序,求所有可能的出栈顺序
先给出算所有出栈可能的个数的公式,由卡特兰数可以得到n = (2n!)/(n! * (n+1)!)那么怎么样得到所有的具体出栈顺序呢,有两种思路可以解决这个问题。1.先得到入栈字符串的全排列,然后根据出栈顺序的规律进行筛选。那么筛选的条件是什么?举例说明入栈顺序:1 2 3 4 5 出栈顺序:3 2 1 5 4 出栈的每个元素后面比该元素小的元素,应该按从大到小的相...原创 2018-09-15 20:02:25 · 6475 阅读 · 0 评论 -
如何用两个栈模拟实现一个队列? 如果这两个堆栈的容量分别是m和n(m>n),你的方法能保证队列的最大容量是多少?
保证入队完毕之后才可以出队; 分析:栈的特点是“后进先出(LIFO)”,而队列的特点是“先进先出(FIFO)”。用两个栈模拟实现一个队列的基本思路是:用一个栈作为存储空间,另一个栈作为输出缓冲区,入队时把元素按顺序压入两栈模拟的队列,出队时按入队的顺序出栈即可。 如下图,用容量为m(较大的)的栈作为存储空间,容量为n的栈作为输出缓冲区,先将入队的前n个元素push进存储空间栈 ...原创 2018-09-16 14:05:19 · 7686 阅读 · 2 评论 -
如何用2个队列实现一个栈--Java
假设连个队列q1,q2,一个做入队列,一个做出队列。q1提供入栈,w2tigong弹栈。入栈时,只需入队列q1即可。弹栈时,需考虑两种情况。q1 只有一个元素,出队即可。q1 不只一个元素,此时弹栈的数据应该为位于队尾的元素,也就是最后进入的元素。我们需要把q1 元素依次出队,保存到q2中,其中q1 的最后一个元素不入q2,直接输出。然后将队列q2 的元素再入队q1.impo...原创 2018-09-16 14:15:30 · 143 阅读 · 0 评论 -
[PTA]02-线性结构4 Pop Sequence
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/the_victory/article/details/52763741 Given a stack which can keep MM numbers at most. Push NN numbers in the order of 1, 2, 3, …, NN and pop randomly...原创 2018-09-16 22:04:41 · 120 阅读 · 0 评论