计算四则表达式 如 1 10 (10 10) 12,输出对应的结果 思路 这是一条比较常规的栈的题目,将中缀表达式转换为后缀,在编码过程中,有几个点犯了错误 1、中缀转后缀时,运算符要和stack栈顶的优先级判断,如果优先级小于或等于栈顶,要把栈顶出栈 2、负号的判断,只有前面是括号或者是运算符,才 ...
分类:
其他好文 时间:
2020-02-16 12:41:56
阅读次数:
76
题目大意:规定 i 为入栈,o 为出栈,现在给两个字符串st1,st2,现在要将st1转化为st2,转化方法是,st1中字符从头开始入栈,并合理出栈构造出st2。请输出所有可能的出入栈步骤。 深度优先搜索+回溯~ #include<bits/stdc++.h> using namespace std ...
分类:
其他好文 时间:
2020-02-15 11:47:10
阅读次数:
53
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路 push时直接入栈stack1,pop时若stack2为空则stack1出栈到stack2后stack2.pop(),否则stack2直接pop。 时间复杂度O(1)。 代码 ...
分类:
其他好文 时间:
2020-02-14 10:52:33
阅读次数:
73
数据结构: 数据存储的常用结构有:栈、队列、数组、链表和红黑树。 栈: 栈:stack, 又称堆栈。 先进后出。 栈的入口、出口的都是栈的顶端位置。 压栈:就是存元素。即,把元素存储到栈的顶端位置,栈中已有元素依次向栈底方向移动一个位置。 弹栈:就是取元素。即,把栈的顶端位置元素取出,栈中已有元素依 ...
分类:
其他好文 时间:
2020-02-12 16:38:26
阅读次数:
61
例子 找出一组数中的最大值。 递归思路: 找到左边和右边的最大值max左和max右,max左和max右中的最大值就是这组数的最大值;以此类推···直到所有数都排好序。 递归原理 子过程压栈出栈的过程。 任何递归过程都可以改成非递归。 递归时间复杂度的计算——Master公式 ...
分类:
其他好文 时间:
2020-02-09 20:13:29
阅读次数:
61
#模拟栈结构stack = []#压栈(向栈里存数据)stack.append("A")print(stack)stack.append("B")print(stack)stack.append("C")print(stack)#出栈(在栈里取数据)res1 = stack.pop()print(" ...
分类:
编程语言 时间:
2020-02-08 11:30:55
阅读次数:
55
#include <stdio.h>#include <stdlib.h> typedef struct Node{ int data ; struct Node * pNext;}*PNODE ,NODE ; typedef struct stack{ PNODE pTop; PNODE pBot ...
分类:
编程语言 时间:
2020-02-05 00:00:23
阅读次数:
201
一列火车n节车厢,依次编号为1,2,3,…,n。 每节车厢有两种运动方式,进栈与出栈,问n节车厢出栈的可能排列方式有多少种。 输入格式 输入一个整数n,代表火车的车厢数。 输出格式 输出一个整数s表示n节车厢出栈的可能排列方式数量。 数据范围 1≤n≤60000 输入样例: 3 输出样例: 5 这道 ...
分类:
其他好文 时间:
2020-02-03 13:59:18
阅读次数:
78
队列Queue、栈LifoQueue、优先级队列PriorityQueue 队列:队列是先进先出。 栈:栈是先进后出。 优先级队列:优先队列是根据优先级判定谁先出来,如果优先级一样,则按数据的ascii码输出。 import queue q = queue.PriorityQueue() q.put ...
分类:
其他好文 时间:
2020-02-02 23:26:30
阅读次数:
95