栈
月落乌啼霜月落
在减肥路上越走越远的废宅。。。
目前坐标 厦门U3D工程师
~~~算法赛高!!!!!
展开
-
数据结构实验之栈八:栈的基本操作(栈)
Think: 就是模拟栈的操作, 注意点时 栈时cnt - 1, 以及 在P操作时 若 为满栈也要 输入数字~~~Problem Description堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出。现在我们就来验证一下堆栈的使用。 Input首先输入整数t(1 <= t <= 10),代表测试的组数,以原创 2017-07-31 09:08:29 · 326 阅读 · 0 评论 -
数据结构实验之栈四:括号匹配(栈)
Think: 模拟栈, 每次判断 当前字符若为 ( [ { 如果是的话就压入栈中 当前字符若为)] } 的话就判断栈顶元素是否为相对应的括弧Problem Description给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配。 Input输入数据有多组,处理到文件结束。 Output如果匹配就原创 2017-07-29 10:38:54 · 547 阅读 · 0 评论 -
数据结构实验之链表五:单链表的拆分(栈)
Think: 本题原可用 链表模板 来解题, 本篇blog 采用的方法 是模拟栈 进行解题Problem Description输入N个整数顺序建立一个单链表,将该单链表拆分成两个子链表,第一个子链表存放了所有的偶数,第二个子链表存放了所有的奇数。两个子链表中数据的相对次序与原链表一致。 Input第一行输入整数N;; 第二行依次输入N个整数。 Output第一行分别输出偶数链表与奇数链表的原创 2017-07-29 10:43:39 · 357 阅读 · 0 评论 -
数据结构实验之栈一:进制转换(栈)
Think: 模拟栈, 每次都将 余数 存入栈中, 然后 出栈即可Problem Description输入一个十进制非负整数,将其转换成对应的 R (2 <= R <= 9) 进制数,并输出。 Input第一行输入需要转换的十进制非负整数; 第二行输入 R。 Output输出转换所得的 R 进制数。 Example Input1279 8 Example Output2377#inc原创 2017-07-29 10:40:43 · 729 阅读 · 1 评论 -
数据结构实验之栈七:出栈序列判定(顺序栈)
Think: 好早前的题, 之前应该也有写过这篇blog,好讨厌写栈和顺序表的题,虽然都有模板套用,但真的好长好长, 方法主要 有两种 ①借助 <stack>来水题 ②用模拟栈来做Problem Description给一个初始的入栈序列,其次序即为元素的入栈次序,栈顶元素可以随时出栈,每个元素只能入栈依次。输入一个入栈序列,后面依次输入多个序列,请判断这些序列是否为所给入栈序列合法的出栈序原创 2017-07-28 16:42:35 · 646 阅读 · 0 评论 -
数据结构实验之栈三:后缀式求值
Think: 利用栈的性质, 将操作数进行储存即可Problem Description对于一个基于二元运算符的后缀表示式(基本操作数都是一位正整数),求其代表的算术表达式的值。 Input输入一个算术表达式的后缀式字符串,以‘#’作为结束标志。 Output求该后缀式所对应的算术表达式的值,并输出之。 Example Input59*684/-3*+# Example Output57原创 2017-08-03 14:30:33 · 295 阅读 · 0 评论 -
数据结构实验之栈二:一般算术表达式转换成后缀式(栈)
Think: 开个栈用来储存 运算符, 当输入的字符为 a – z的时候直接进行输出操作, 当为运算符的时候应 判断其 运算时的 优先级, 以及是否为括号。若为 )则把之前 (中的所有运算符进行出栈操作。 若优先级低, 则应该栈顶是否为 (然后进行相对应的 入栈操作. 输出时 则就是把栈全部输出即可Problem Description对于一个基于二元运算符的算术表达式,转换为对应的后缀式,并原创 2017-08-03 08:49:41 · 325 阅读 · 0 评论 -
山峰
Think: 听说用栈就可以做了~~~ 然后还真AC了~~~ 为什么当初没看出来TAT, 思路挺好理解的, 每次输入 一个高度, 把之前 栈内 矮的高度 进行出栈处理, 以此类推啦~~~~为什么 我当时 用DP 想, 唉 ~~~Problem Description金石山脉有n个山峰,一字排开,从西向东依次编号为1, 2, 3, ……, n。编号为i的山峰高度为hi。每个山峰的高度两两不同小木原创 2017-07-24 20:38:20 · 503 阅读 · 0 评论 -
数据结构实验之栈:行编辑器(栈)
Think: 判断 字符是否为 #@即可~~ ‘#’的话就top– ‘@’的话就top = baseProblem Description一个简单的行编辑程序的功能是:接受用户从终端输入的程序或数据,并存入用户的数据区。 由于用户在终端上进行输入时,不能保证不出差错,因此,若在编辑程序中,“每接受一个字符即存入用户数据区”的做法显然不是最恰当的。较好的做法是,设立一个输入缓冲区,用以接受用户输原创 2017-07-31 17:03:42 · 493 阅读 · 0 评论 -
回文串判定(栈)
Think: 思路就是 将整个栈存入, 然后 分别从 栈顶和栈底遍历Problem Description输入一串字符(长度小于100),判断该串字符是否是回文串(正序读与逆序读内容相同)。 Input输入一串字符(长度小于100)。 Output若该串字符是回文串输出“yes”,否则输出”no“。 Example Inputasdfgfdsa Example Outputyes#incl原创 2017-07-31 17:01:18 · 562 阅读 · 0 评论 -
进制转换(栈 && 16进制转换)
Think: 思路 和 普通进制转换的 思路一样 一直使用 while(N) { int ans = N % R; N = N / R; Push(L, ans); }将转换得到的 数字压入栈中, 然后 在 出栈时判断 该数字 是否大于 10, 大于10 就转换为 想对应的 字母 也就是原创 2017-07-31 09:22:45 · 1936 阅读 · 0 评论 -
Re0(单调栈)
Think: 因为要满足题意,所以优先 采用单调栈来进行解题。 这是春节的题目 2333, 然后半年过去了, 才写解题报告(手动滑稽)。 我的思路就是 建立结构体来储存 威胁数, 然后利用单调栈的特性来进行计算 威胁数, 进而储存。 输出时,输出相对应的a[key].cnt值即可~~Problem DescriptionRe0 虽然是老套的穿越剧情,但是却有着虐男主 (486) 的新奇点子。作原创 2017-08-07 08:54:59 · 250 阅读 · 0 评论