栈
文章平均质量分 69
张荣华_csdn
这个作者很懒,什么都没留下…
展开
-
可查询最值的栈
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。class Solution {public: stack<int> stackData; stack<int> stackMin; void push(int value) { stackData.push(value); if(stackMin.empty...原创 2018-05-20 15:08:52 · 150 阅读 · 0 评论 -
Binary Tree Preorder Travers
Given a binary tree, return the preorder traversal of its nodes' values.Example:Input: [1,null,2,3] 1 \ 2 / 3Output: [1,2,3]Follow up: Recursive solution is trivial, could you do...原创 2018-06-29 09:56:26 · 182 阅读 · 0 评论 -
Binary Tree Postorder Traversal
Given a binary tree, return the postorder traversal of its nodes' values.Example:Input: [1,null,2,3] 1 \ 2 / 3Output: [3,2,1]Follow up: Recursive solution is trivial, could you d...原创 2018-06-29 09:56:38 · 193 阅读 · 0 评论 -
判断出栈序列是否合法
1)如果当前栈为空,且入栈序列不空,则,入栈序列的下一个元素入栈;2)如果当前栈顶元素不等于出栈序列的首元素,那么入栈序列一直入栈,知道入栈序列为空。3)如果当前栈顶元素等于出战序列的首元素,那么栈顶元素弹出,出栈序列第一个元素移走;4) 如果入栈序列为空,出栈序列第一个元素仍然不等于栈顶元素,则表示2个序列是不匹配的。#include<iostream>#include<sta...原创 2018-07-14 00:05:25 · 2476 阅读 · 0 评论 -
用两个栈实现一个队列(C++)
#include "malloc.h"#include "iostream"using namespace std; #define STACKINCREMENT 10#define STACK_INIT_SIZE 10class stack {public : int * base; int * top; int stacksize; bool...原创 2018-07-23 20:31:30 · 1110 阅读 · 0 评论 -
括号匹配问题
#include "stdio.h"#include "malloc.h"#define STACK_INIT_SIZE 20#define STACKINCREMENT 10typedef struct{ char *base; char *top; int stacksize;}sqStack;int initStack(sqStack *s){ ...原创 2018-07-23 20:34:06 · 413 阅读 · 0 评论 -
编程实现一个二/八进制的转换器
#include "stdio.h"#include "math.h"#include "malloc.h"#define STACK_INIT_SIZE 30#define STACKINCREMENT 10typedef struct{ char *base; char *top; int stacksize;}sqStack;int initSta...原创 2018-07-23 20:35:31 · 473 阅读 · 0 评论 -
栈的实现(C++)
头文件:#ifndef MYSTACK_H#define MYSTACK_Hclass MyStack{public: MyStack(int size); //分配内存初始化栈空间,设定栈容量,栈顶 ~MyStack(); //回收栈空间内存 bool stackEmpty(); ...原创 2018-07-31 00:05:38 · 214 阅读 · 0 评论 -
Valid Parentheses(C++)
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.An input string is valid if:Open brackets must be closed by the same type of b...原创 2018-05-23 13:19:30 · 289 阅读 · 0 评论 -
Palindrome Linked List
Given a singly linked list, determine if it is a palindrome.Example 1:Input: 1->2Output: falseExample 2:Input: 1->2->2->1Output: true/** * Definition for singly-linked list...原创 2018-08-06 12:32:15 · 124 阅读 · 0 评论 -
单词倒排
对字符串中的所有单词进行倒排。说明:1、每个单词是以26个大写或小写英文字母构成;2、非构成单词的字符均视为单词间隔符;3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;4、每个单词最长20个字母;#include <iostream>#include <stack>#incl...原创 2018-08-08 10:26:19 · 679 阅读 · 0 评论 -
火车进站
题目描述给定一个正整数N代表火车数量,0<N<10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号。要求以字典序排序输出火车出站的序列号。 输入描述:有多组测试用例,每一组第一行输入一个正整数N(0<N<10),第二行包括N个正整数,范围为1到9。输出描述:输出以字典序从小到大排序的火车出站序列号,每个编号以空格隔开,每个输出序列换行,...原创 2018-08-13 12:36:50 · 1217 阅读 · 0 评论 -
32. 最长有效括号
给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。示例 1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"方法一:借助栈来求解,需要定义个start变量来记录合法括号串的起始位置,我们遍历字符串,如果遇到左括号,则将当前下标压入栈,如...原创 2018-08-19 07:06:18 · 715 阅读 · 0 评论 -
Binary Tree Zigzag Level Order Traversal
Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between).For example:Given binary tree [...原创 2018-06-22 00:24:00 · 170 阅读 · 0 评论 -
Evaluate Reverse Polish Notation
Evaluate the value of an arithmetic expression in Reverse Polish Notation.Valid operators are +, -, *, /. Each operand may be an integer or another expression.Note:Division between two integers should...原创 2018-06-29 12:43:18 · 174 阅读 · 0 评论 -
非递归二叉树的序列打印
请用非递归方式实现二叉树的先序、中序和后序的遍历打印。给定一个二叉树的根结点root,请依次返回二叉树的先序,中序和后续遍历(二维数组的形式)。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), lef...原创 2018-06-10 09:50:33 · 174 阅读 · 0 评论 -
双栈队列
编写一个类,只能用两个栈结构实现队列,支持队列的基本操作(push,pop)。给定一个操作序列ope及它的长度n,其中元素为正数代表push操作,为0代表pop操作,保证操作序列合法且一定含pop操作,请返回pop的结果序列。class TwoStack {public: stack<int> s1; stack<int> s2; vector<in...原创 2018-05-21 10:40:08 · 196 阅读 · 0 评论 -
栈的反转
实现一个栈的逆序,但是只能用递归函数和这个栈本身的pop操作来实现,而不能自己申请另外的数据结构。给定一个整数数组A即为给定的栈,同时给定它的大小n,请返回逆序后的栈。class StackReverse {public: vector<int> reverseStack(vector<int> A, int n) { // write code her...原创 2018-05-21 10:40:00 · 325 阅读 · 0 评论 -
双栈排序
请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中。给定一个int[] numbers(C++中为vector&ltint>),其中第一个元素为栈顶,请返回排序后的栈。请注意这是一个栈,意味着排序过程中你只能访问到第一个元素。class TwoStacks {private: stack<i...原创 2018-05-21 10:31:07 · 241 阅读 · 0 评论 -
利用数组构造MaxTree
对于一个没有重复元素的整数数组,请用其中元素构造一棵MaxTree,MaxTree定义为一棵二叉树,其中的节点与数组元素一一对应,同时对于MaxTree的每棵子树,它的根的元素值为子树的最大值。现有一建树方法,对于数组中的每个元素,其在树中的父亲为数组中它左边比它大的第一个数和右边比它大的第一个数中更小的一个。若两边都不存在比它大的数,那么它就是树根。请设计O(n)的算法实现这个方法。给定一个无重...原创 2018-06-03 00:03:33 · 224 阅读 · 0 评论 -
二叉树的前序遍历
给定一个二叉树,返回它的 前序 遍历。 示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNod...原创 2018-06-03 00:01:54 · 643 阅读 · 0 评论 -
二叉树的后序遍历
给定一个二叉树,返回它的 后序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1]/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode...原创 2018-06-03 00:01:43 · 2268 阅读 · 0 评论 -
二叉树的中序遍历
给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *ri...原创 2018-06-03 00:01:34 · 465 阅读 · 0 评论 -
二叉树的序列化
首先我们介绍二叉树先序序列化的方式,假设序列化的结果字符串为str,初始时str等于空字符串。先序遍历二叉树,如果遇到空节点,就在str的末尾加上“#!”,“#”表示这个节点为空,节点值不存在,当然你也可以用其他的特殊字符,“!”表示一个值的结束。如果遇到不为空的节点,假设节点值为3,就在str的末尾加上“3!”。现在请你实现树的先序序列化。给定树的根结点root,请返回二叉树序列化后的字符串。/...原创 2018-06-12 09:25:12 · 241 阅读 · 0 评论 -
Largest Rectangle in Histogram
Given n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectangle in the histogram.Above is a histogram where width of each bar...原创 2018-06-06 08:15:23 · 199 阅读 · 0 评论 -
Maximal Rectangle
Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing only 1's and return its area.Example:Input:[ ["1","0","1","0","0"], ["1","0","1",&a原创 2018-06-06 08:15:10 · 165 阅读 · 0 评论 -
链表的k逆序
有一个单链表,请设计一个算法,使得每K个节点之间逆序,如果最后不够K个节点一组,则不调整最后几个节点。例如链表1->2->3->4->5->6->7->8->null,K=3这个例子。调整后为,3->2->1->6->5->4->7->8->null。因为K==3,所以每三个节点之间逆序原创 2018-06-07 08:55:08 · 213 阅读 · 0 评论 -
Palindrome Linked List
Given a singly linked list, determine if it is a palindrome.Example 1:Input: 1->2Output: falseExample 2:Input: 1->2->2->1Output: true/** * Definition for singly-linked list. * struct L...原创 2018-06-08 09:14:53 · 195 阅读 · 0 评论 -
20. 有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false...原创 2018-08-18 11:18:44 · 150 阅读 · 0 评论