Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by Stack popst
【初阶数据结构】栈和队列(附题目)-CSDN博客
目录 1.栈 a.数组 b.链表 d.入栈 2.队列 4.1题目 4.2答案 5.1栈: Stack.h Stack.c 5.2队列 Queue.h Queue.c 1.栈 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。 出栈:栈的删除操作叫做出栈。出数据也在栈顶。 栈在逻辑上仍然是线性的,但是与顺序表、链表不同,栈只能在栈顶入数据,在栈底出数据,不能在任意位置进行操作,栈顶与栈底是根据功能命名的,没有严格规定首部是栈顶,尾部是栈底。 1.2.2实现结构的选择 在数据结构之前的学习中,我们已经学习了链式与数组这两种存储的结构,栈的实现一般都可以使用数组或者链表实现。相对而言数组的结构实现更优一些。因为数组在尾上插入数据的 代价比较小。 a.数组 对于数组而言,如果我们将头部作为栈底,那么压栈出栈就需要挪动许多数据,算法复杂度为较大,因此我们一般将数组头部作为栈顶,尾部作为栈底.
【不太正常的题】LeetCode.232:用栈的函数接口实现队列-CSDN博客
🎁个人主页:我们的五年 🔍系列专栏:初阶数据结构刷题 🎉欢迎大家点赞👍评论📝收藏⭐文章 🚗 1.问题描述: 题目中说了只能使用两个栈实现队列,并且只能使用基本的栈操作。比如:在栈顶进行入栈操作,在栈顶进行出栈,取栈顶元素,还有判空这些基本的栈操作函数。然后使用这些函数实现队列的基本操作,队列的特点就是在队尾插入数据,在队头删除数据,在对头取数据。 题中说使用两个栈实现,也给了我们提示。 🚗 2.问题分析: 假如先在一个栈中插入三元素1.2.3。 当使用StackPush函数在PushST进行三次插入以后,就变成了上面的情形,但是如果我们要进行队列取队头的数据,进行队列删除队头的数据,我们就要先把上面的3和2拿走。从而我们就想到了把左边栈里面的元素的放到右边去。 进行上面的操作以后,我们就调用栈的取栈顶的函数就可以拿到元素1,也可以进行取删除元素1,就可以达到和队列一样的性质:先进先出。 插入数据的时候,我们还是在PushST中插入数据,加入先插入4,5.
数据结构刷题训练:用栈实现队列(力扣OJ)_清水加冰的博客-CSDN博客
栈和队列是数据结构中的两个重要概念,它们在算法和程序设计中都有着广泛的应用。本文将带你深入了解如何使用栈来模拟实现队列,让你在解决问题时更加灵活和创新,便于大家更深入的理解栈和队列。 题目描述: 题目链接: 用栈实现队列https://leetcode.cn/problems/implement-queue-using-stacks/description/ 这道题目的解题思路于队列实现栈有很大的相似点。这道题也是给了两个栈,要求使用两个栈来实现队列。这里我们可以使用两边倒的方式来模拟实现队列。 假设入栈:1、2、3、4那么出栈的顺序就是4、3、2、1,如果我们按照出栈的顺序再入栈到另一个栈中(空栈),再次出栈就可以达到队列出队的效果(1、2、3、4) 根据上述的思路我们就可以利用两个栈模拟实现队列。思路的大概过程: 那么我们来考虑一下特殊的情况,如果我们入队了1、2、3、4,出队了1和2,然后再入队5和6,这时候我们考虑一下是否还需要倒一次(将剩下的3和4入栈到原栈中,然后入栈5和6,再将3、4、5、6依次出栈,入栈到另外一个栈中)?...
Leetcode每日一题--“用栈实现队列”_认真学习的小雅兰.的博客-CSDN博客
Leetcode每日一题——“用队列实现栈”_认真学习的小雅兰.的博客-CSDN博客 然后导数据,也就是Pop一下: 如果还要继续Pop的话,就不需要和之前那个题目“用队列实现栈”那样,再导数据啦 这次Pop就可以直接在第二个队列里面Pop 如果要Push5 6的话,那又该怎么办呢? 我们不妨这样:直接写“死”,把一个队列设为专门出数据的,另一个队列设为专门入数据的 如果是要Push5 6,那么,就这样: 如果还要再Pop三次呢? 只要知道这样一个原则:只要popst(第二个队列)不为空,就可以一直出数据,如果popst为空了,就导数据,导了之后再出!!! 那么,这个题目的思路就是这样子了,下面,我们开始写代码吧!!! 首先,我们用C语言,得手撕一个栈: typedef int STDataType; typedef struct Stack { STDataType* a; int top;//栈顶 int capacity;//容量 }Stack; // 初始化栈 void StackInit(Stack* pst); // 销毁栈 void...
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with Stack
Contact Stack, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack