当前位置: 首页 > news >正文

模拟实现堆栈将中缀算术表达式转换成后缀表达式

1、随机生成100个0到200的整数

用折半查找法(二分法)查找50是初始数据的第几个数, 并输出查找过程(即和什么数进行了比较)。


public class Random0To200 {public int random;public int num;public void display(){System.out.print(random+"在第"+num+"个位置  ");}}```java
public class find50 {private static Random0To200[] randomArrays;public static void main(String[] args) {
int num=0;randomArrays = new Random0To200[100];for(int i=0;i<100;i++){randomArrays[i]= new Random0To200();randomArrays[i].random=(int) (Math.random()*201);randomArrays[i].num=i;	}for(int i=0;i<100;i++){randomArrays[i].display();
num++;if(num==10){num=0;System.out.println();}}System.out.println();Random0To200 temp=new Random0To200();for(int i=0;i<100;i++){ for(int j=i;j<100;j++){ if(randomArrays[i].random>randomArrays[j].random){temp=randomArrays[i];randomArrays[i]=randomArrays[j];randomArrays[j]=temp;}}}System.out.println("排序后");for(int i=0;i<100;i++){	randomArrays[i].display();
num++;if(num==10){num=0;System.out.println();}}System.out.println("");int low=0;int high=99;int mid;while(low<=high){mid=(low+high)/2;if(randomArrays[mid].random==50){System.out.println(randomArrays[mid].random+"=50");randomArrays[mid].display();System.out.println();randomArrays[mid].random=0;}else if(randomArrays[mid].random<50){low=mid+1;System.out.println(randomArrays[mid].random+"<50");}else {high=mid-1;System.out.println(randomArrays[mid].random+">50");}}System.out.println(" 已无50");
}
}

4、用数组模拟实现一个50个字符串的堆栈,并使这个堆栈有如下方法和参数:

myStack:数组名,使用时不能直接对这个数组进行存取操作,存取操作都通过pop()和push()完成。
实现pop(): 弹出
实现push():压入
实现isFull():是否已满
实现isEmpty():是否为空
实现length():已有多少元素


public class StackImiate { public int maxSize;public char[] a;public int top;StackImiate(int maxSize) {this.maxSize=maxSize;a=new char[maxSize];top=-1;}public void push(char str) {a[++top]=str;}	public char pop() {return a[top--];}public boolean isEmpty() {return(top==-1);}public boolean isFull() {return(top==maxSize);}public int length() {return top+1;}public char peek() {return a[top];}public char peekN(int n) {//System.out.println(a[n]);return a[n];}public void displayStack(String s) {System.out.print(s);System.out.print(" Stack (bottom-->top): ");for(int j=0;j<maxSize;j++) {System.out.print(peekN(j)+" ");}System.out.println();}
}

5、使用堆栈,将中缀算术表达式转换成后缀表达式。

A、表达式中只有+、-、×,/,%,(,)六种运算符
B、变量名为以英文字母开头的字母数字串
C、表达式中可以出现不带符号的常数
D、适当判断表达式中的语法错误
E、不计算结果


public class InToPost {		public static void main(String[] args) {String strResult=new String();String  Input="a+b*c+(d*e+f)*g";strResult=strResult+doTrans(Input);System.out.println();System.out.println(strResult);}public static StringBuffer doTrans(String  Input) {//返回strResult的函数StackImiate  str=new StackImiate(50);StringBuffer strResultTemp=new StringBuffer();for (int i = 0; i <Input.length(); i++) {char ch = Input.charAt(i);str.displayStack("Get " + ch + " ");switch (ch) {case '+':case '-':gotOper(ch, 1,str,strResultTemp);				break;case '*':case '/':case '%':gotOper(ch, 2,str,strResultTemp);				break;case '(':					str.push(ch);break;case ')':gotParen(ch,str,strResultTemp);				break;default:					strResultTemp =strResultTemp.append(ch);break;}}while (!str.isEmpty()) {str.displayStack("out ");strResultTemp = strResultTemp.append(str.pop());}str.displayStack("End  ");				return strResultTemp;						}public static void gotParen(char ch,StackImiate  str,StringBuffer strResultTemp) {//对括号进行处理的函数while (!str.isEmpty()) {char chx = (char) str.pop();		if (chx == '(') {break;} else {strResultTemp =strResultTemp.append(chx);			}}}private static void gotOper(char ch, int i,StackImiate  str,StringBuffer strResultTemp) {//对运算符的优先级处理// TODO Auto-generated method stubwhile (!str.isEmpty()) {		char opTop = (char) str.pop();if (opTop == '(') {		str.push('(');break;} else {int k;if (opTop == '+' || opTop == '-') {k = 1;} else {k = 2;}if (k < i) {		str.push(opTop);break;} else {strResultTemp = strResultTemp.append(opTop);	}}}str.push(ch);				}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-2852.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

自适应平台AUTOSAR(Adaptive Platform AUTOSAR)平台设计(6)——通信管理

参考&#xff1a; https://zhuanlan.zhihu.com/p/336833453 1.概述 通信管理负责分布式实时嵌入式环境中应用程序之间的所有通信。 背后的概念是从实际机制中抽象出来&#xff0c;以查找和连接通信伙伴&#xff0c;以便应用程序软件的实现者可以专注于其应用程序的特定目的。…...

飞塔防火墙MIB-OID列表

找了很久,终于找到了官方的文档,包含了很多东西,贴个目录吧,获取资源请见最底部链接。 介绍: FortiGate是全新的下一代防火墙,在整个硬件架构和系统上面都有新的设计,在性能和功能上面都有了很大提升,具有性能高、接口丰富、功能齐全、安全路由交换一体化、性价比高等…...

中国石油大学《混凝土》第三阶段在线作业

第三阶段在线作业单选题 (共24道题) 收起1.&#xff08;2.5分&#xff09; 混凝土构件的平均裂缝间距与下列因素无关的是 A、混凝土强度等级 B、混凝土保护层厚度 C、纵向受拉钢筋直径 D、纵向钢筋配筋率我的答案&#xff1a;A 此题得分&#xff1a;2.5分2.&#xff08;…...

CSS 透明,文字不透明处理

1.opacity&#xff1a;会使其所有子元素都透明 我们通常是使用 opacity来做背景的透明化处理&#xff0c;该属性被所有浏览器支持&#xff0c;可以大胆使用&#xff0c;透明度从0.0(完全透明)到1.0(完全不透明)&#xff0c;但该方法会使其所有子元素都透明&#xff0c;此时若只…...

HTML基础知识

HTLM基础知识 语义化 每一个HTML元素都有具体的含义所有元素与展示效果无关,元素展示的效果应该由CSS决定浏览器带有默认的CSS样式,所以每个元素都有一些默认的样式选择什么元素,取决于内容的含义,而不是显示出的效果为什么需要语义化? 5.1 为了搜索引擎优化(SEO),每隔一段时…...

记录一个docker容器内网络与主机不通的问题(桥接网络不通)

https://blog.csdn.net/weixin_33102135/article/details/111946436 测试docker已经部署上的流程&#xff1a; 进入容器内部执行&#xff0c;脚本。执行成功。 外网telnet连接显示连接不到端口。 在其他机器上部署该docker服务&#xff0c;docker-compse方式&#xff0c;可…...

Hudi 系列(二)- 编译 hudi

编译 hudi 如果是第一次编译 hudi 会花很长时间&#xff0c;maven 本地仓库为空的情况下&#xff0c;我花了40分钟&#xff08;视网络环境&#xff09;。编译步骤如下&#xff1a; 下载 releace 源代码&#xff0c;https://hudi.apache.org/releases&#xff0c;现在的最新版本…...

MapReduce概述

1.MapReduce定义 MapReduce是一个分布式运算程序的编程框架&#xff0c;是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序&#xff0c;并行运行在一个Hadoop集群上。 2.MapReduc…...

vsftpd2.3.4著名笑脸漏洞复现实战

1.vsftpd手工利用 攻击机kali&#xff1a;192.168.182.133 靶机metasploit&#xff1a;192.168.182.128 先ping一下靶机看看靶机是否存活 接着使用nmap对靶机进行信息收集 这里可以看到版本是vsftpd2.3.4 漏洞是存在的 直接ftp连接靶机 用户名&#xff1a;user:) 密码随意…...

赶紧收藏!javasocket聊天室和私聊

前言 这些算法&#xff0c;都是小编一点一点看的大佬们的方法&#xff0c;自己积累的. 如果有什么描述的不对的地方还望大佬赐教 多交流才能进步&#xff0c;加油&#xff0c;冲冲冲&#xff01;&#xff01;&#xff01; RPC概述 RPC(Remote Procedure Call)即远程过程调用&a…...

洛谷:P1831 杠杆数(数位dp)

文章目录描述解析代码thanks for reading&#xff01;传送门描述 如果把一个数的某一位当成支点&#xff0c;且左边的数字到这个点的力矩和等于右边的数字到这个点的力矩和&#xff0c;那么这个数就可以被叫成杠杆数。 比如4139就是杠杆数&#xff0c;把3当成支点&#xff0c…...

<form>标签

HTML-表单 1. 在HTML标签中,<form>标签用来定义表单&#xff0c;来实现用户信息的收集和传递。 <form action"url地址" method"提交的方式" name"表单的名称"></form> 比较get和post&#xff1a; 2. 表单能够包含 input 元…...

.NET 6程序部署到Docker

使用Docker部署应用程序 首先确保已经安装Docker 桌面软件&#xff0c;如下图&#xff1a; 然后&#xff0c;把需要部署到Docker上面的项目&#xff0c;咱们先添加Docker的支持&#xff0c;启动项目右键 -> 添加 -> Docker支持&#xff0c;选择 Linux 然后会自动生成Doc…...

如何抓取modem开机log

1. adb root 2. adb shell cat /sys/bus/msm_subsys/devices/subsys*/name 3. 根据2输出的结果从上往下数&#xff0c;从0开始数&#xff0c;数到modem是数字几&#xff0c;那么*号就用几来替代&#xff0c;比如数到moddem是3&#xff0c;那么modem对应的子系统就是subsys3 4…...

HTML5详解 (前端)

什么是HTML 超文本标记语言 Hyper Text Markup Language W3C 万维网联盟 标准包括&#xff1a; 结构化标准语言&#xff08;HTML、XML&#xff09;表现标准语言&#xff08;CSS&#xff09;和行为标准&#xff08;DOM、ECMAScript&#xff09; 新建project HTML 删除SRC文件…...

我们究竟还要学习哪些Android知识?赶紧收藏!

前言 今年是转折的一年&#xff0c;很多学android开发的小伙伴失业了&#xff0c;虽找到了一份工作&#xff0c;但高不成低不就&#xff0c;下半年金九银十有想法更换一份工作&#xff0c;很多需要大厂面试经验和大厂面试真题的小伙伴&#xff0c;想提前准备刷下题。接下来分享…...

VR垃圾分类_VR环保科普_VR垃圾分类综合解决方案

随着人类生活质量水平的提高&#xff0c;人类生存的环境在不可逆转的变化&#xff0c;自然保护和生态安全越来越引人注目。全球气候变暖、自然灾害频繁&#xff0c;使得保护生态环境迫在眉睫。聚象科技VR环保模拟系统&#xff0c;使体验者“进入”生态环境&#xff0c;身临其境…...

python的matplotlib的常用绘图函数模版

import matplotlib.pyplot as plt # from mpl_toolkits.mplot3d import Axes3D import matplotlib as mpl import numpy as np import pandas as pd import time plt.rcParams[font.sans-serif][simhei]#用于正常显示中文标签 plt.rcParams[axes.unicode_minus]False#用于正常显…...

写给互联网大厂员工的真心话,面试必问

越来越多的人在提“移动端的下半场”、“Android 开发的焦虑”之类的&#xff0c;也有人在喊“技术天天在变&#xff0c;学也学不完”&#xff0c;“昨天 Kotlin 今天 Flutter”。其实我却认为&#xff0c;如果你技术达到了一定程度&#xff0c;你无需太过在意这些。 移动端真…...

【Laravel3.0.0源码阅读分析】会话驱动类driver.php

<?php namespace Laravel\Session\Drivers;interface Driver {/*** Load a session from storage by a given ID.* 通过给定的ID从存储加载会话。* If no session is found for the ID, null will be returned.** param string $id* return array*/public function load(…...

matlab怎么把CIFAR数据集中的图片读取出来

下载cifar数据集的地址&#xff1a;https://www.cs.toronto.edu/~kriz/cifar.html 下载matlab版本的&#xff0c;如红框圈住的那个。 数据集下载到电脑中的样子 这里的image_ture是我写的matlab代码&#xff0c;下面有说明 clear; close all; tic; load(G:\训练图片\cifar-1…...

java网络编程基础-传输层协议TCPUDP

文章目录一.网络编程基础二.UDP&#xff1a;无连接无状态的通讯协议三.TCP&#xff1a;有连接&#xff0c;保证可靠的通讯协议一.网络编程基础 1.网络和网卡 网络是当前信息技术的第一推动力 每个计算机设备上都有若干个网卡 每个网卡上都有全球唯一的单独的硬件地址&#xff…...

redis-第一节作业

#信息添加 功能&#xff1a;设置 key&#xff0c;value 数据 set key value #范例 set name itheima #信息查询 功能&#xff1a;根据 key 查询对应的 value&#xff0c;如果不存在&#xff0c;返回空&#xff08;nil&#xff09; get key #范例 get name #整体例子 set age 1…...

什么是HashMap

Hashmap是有数组链表红黑树组成的数据结构。HashMap采用Entry数组来存储key-value对&#xff0c;每一个键值对组成了一个Entry实体&#xff0c;Entry类实际上是一个单向的链表结构&#xff0c;它具有Next指针&#xff0c;可以连接下一个Entry实体。 只是在JDK1.8中&#xff0c;…...

HTML基础知识

HTLM基础知识 语义化 每一个HTML元素都有具体的含义所有元素与展示效果无关,元素展示的效果应该由CSS决定浏览器带有默认的CSS样式,所以每个元素都有一些默认的样式选择什么元素,取决于内容的含义,而不是显示出的效果为什么需要语义化? 5.1 为了搜索引擎优化(SEO),每隔一段时…...

【学习随记】论文翻译:A Comprehensive Survey on Safe Reinforcement Learning

本篇译文为方便自己再次阅读而记录&#xff0c;源自Google翻译和CNKI翻译助手。习惯用语保持英文&#xff08;例&#xff1a;agent&#xff09;&#xff0c;一些细微之处结合自己理解稍加修改&#xff0c;为方便阅读&#xff0c;译文删除了参考文献相关部分。才疏学浅&#xff…...

SpringJdbc学习笔记-03声明式事务

3.2 声明式事务 典型的SpringAOP的实现&#xff0c;基于AOP&#xff0c;所以一定要把aop的依赖都导入 什么叫声明式&#xff1a; 3.2.1 导入命名空间 <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchem…...

jsp2生命周期

No.1生命周期知识点 1、Java 对象的生命周期 创建Java有3种方式 new 2. class加载 3. classloader加载 销毁&#xff1f; 出作用域该对象就变为了无用对象. 等待System.gc(),销毁无用对象. servlet 对象的生命周期 第一次访问某个servlet的时候&#xff0c;servlet构造方法被…...

Go 环境搭建

各位提供的信息统一汇总了下&#xff1a; 1、设置 go env -w GO111MODULEauto 2、在线体验 https://play.golang.org/ 3、Git 官网 https://git-scm.com/ 4、vs code环境 https://marketplace.visualstudio.com/items?itemNamegolang.go https://code.visualstudio.com/ 5、七…...

仿百度文库网站源码(织梦内核5.7)

分享仿百度文库网站程序源码&#xff0c;是一个用来搭建供网友在线分享文档的开放**台网站。在用仿百度分享文库程序源码搭建的网站上&#xff0c;用户可以在线阅读和下载涉及课件&#xff0c;题&#xff0c;考试题库&#xff0c;论文报告&#xff0c;专业资料&#xff0c;各类…...

文件结束标志EOF及fgetc fgets getc gets getchar函数

1. EOF(end of file) 大家都知道流(文本流&#xff0c;标准输入流)结束时会返回EOF&#xff0c;那么EOF到底是什么呢&#xff1f; 在stdio.h中我们可以看到相关声明&#xff1a; #define EOF (-1)很明显&#xff0c;EOF是一个宏&#xff0c;被定义为-1。 到这里&#xff0…...

c语言 fgetc函数,C 库函数 – fgetc()

C 库函数 - fgetc()描述C 库函数 int fgetc(FILE *stream) 从指定的流 stream 获取下一个字符(一个无符号字符)&#xff0c;并把位置标识符往前移动。声明下面是 fgetc() 函数的声明。int fgetc(FILE *stream)参数stream -- 这是指向 FILE 对象的指针&#xff0c;该 FILE 对象标…...

getc/fgetc

文件操作函数 一.文件打开 FILE *fopen(char *file,char *open_mode);//在当前目录下打开一个文件第一个参数为要打开的文件&#xff0c;第二个参数是文件类型和操作要求。 二.带f(fgetc.fputc)的是通过函数来实现的&#xff0c;不带f(getc.putc)的是通过宏定义来实现的。调用…...

fgetc与fputc

fgetc 和 fputc 的使用 fgetc 获得一个字符。 int fgetc(FILE *stream); 从文件中读一个字符。 返回值&#xff1a;成功字符对应的ascii数值。失败返回-1&#xff1b; stream文件指针 int main(int argc, const char* argv[]) { FIL…...

C fgetc用法

原文地址&#xff1a;https://www.runoob.com/cprogramming/c-function-fgetc.html C 库函数 - fgetc() C 标准库 - <stdio.h> 描述 C 库函数 int fgetc(FILE *stream) 从指定的流 stream 获取下一个字符&#xff08;一个无符号字符&#xff09;&#xff0c;并把位置标…...

c语言fgetc函数作用,C语言fputc()和fgetc()函数

fputc()函数用于将单个字符写入文件。它将一个字符输出到流。fputc()函数的语法&#xff1a;int fputc(int c, FILE *stream)示例&#xff1a;创建一个源文件&#xff1a;fputc-write-file.c&#xff0c;其代码如下 -#include main() {FILE *fp;fp fopen("myfile.txt&quo…...

fgetc函数踩过的坑

最近从中文的文本中用 fgetc()函数读取数据时&#xff0c;数据读到一部分程序提早跳出。 源程序中fgetc使用方法如下 #include<stdio.h> #include<stdlib.h>void main() {FILE *fp fopen("1.txt", "r");if (NULL fp){return;}char ch;while…...

c 语言中fgetc函数,C 库函数 - fgetc()

描述C 库函数 int fgetc(FILE *stream) 从指定的流 stream 获取下一个字符(一个无符号字符)&#xff0c;并把位置标识符往前移动。声明下面是 fgetc() 函数的声明。int fgetc(FILE *stream)参数stream -- 这是指向 FILE 对象的指针&#xff0c;该 FILE 对象标识了要在上面执行操…...

c语言fgetc函数作用,C语言中fgetc函数的使用方法

该函数包含在C语言中的stdio.h头文件中&#xff0c;主要功能是从流中读取一个字符&#xff0c;并增加文件指针的位置。函数原型&#xff1a;int fgetc(FILE *fp);函数功能&#xff1a;从流中读取字符&#xff0c;即从fp所指定的文件中取得下一个字符。这里需要注意&#xff0c;…...

fgetc函数

/*******************************************功能&#xff1a;从指定的文件流中读取一个字节 *参数&#xff1a;* stream FILE *&#xff08;流指针&#xff09;*返回值&#xff1a; * 成功返回读到的字符* 失败返回errno* 文件结束返回EOF**************************…...

matlab fgetc,fgetc函数的作用是什么

计算机cpu上标明的2.4g是指什么计算机cpu上标明的2.4g是指cpu的时钟频率。时钟频率又称为时钟频率速度&#xff0c;是指同步电路中时钟的基础频率&#xff0c;以“若干次周期每秒”来度量。它是评定cpu性能的重要指标&#xff0c;一般来说&#xff0c;主频数值越大越好。fgetc函…...

php fgetc,PHP 文件读取 fread、fgets、fgetc、file_get_contents 与 file 函数

fread()、fgets()、fgetc()、file_get_contents() 与 file() 函数用于从文件中读取内容。fread() 函数用于读取文件(可安全用于二进制文件)。语法&#xff1a;string fread( int handle, int length )fread() 从文件指针 handle 读取最多 length 个字节。当遇到下列任何一种情况…...

fgetc php,php fgetc函数怎么用

php fgetc函数用于从文件指针中读取一个字符&#xff0c;其语法是fgetc(file)&#xff0c;参数file必需&#xff0c;规定要检查的文件。php fgetc函数怎么用&#xff1f;定义和用法fgetc() 函数从文件指针中读取一个字符。语法fgetc(file)参数file必需。规定要检查的文件。说明…...

fgetc

fgetcint fgetc(FILE * stream); 1. Get character from stream Returns the character currently pointed by the internal file position indicator of the specified stream. The internal file position indicator is then advanced to the next character....

C语言中fgetc()、fgets()之间的区别

在学习文件那一快关于读写文件中的字符让我折腾了一阵子&#xff0c;总是把这几个函数混淆&#xff0c;今天有时间就整理下&#xff0c;并分享下个人的心得&#xff0c;希望对大家有帮助。 1.fgetc() 和 fgets() 之间的区别 fgetc 是 file get char 的缩写&#xff0c;意思是…...

C语言fgetc和fputc函数用法讲解

在C语言中&#xff0c;读写文件比较灵活&#xff0c;既可以每次读写一个字符&#xff0c;也可以读写一个字符串&#xff0c;甚至是任意字节的数据&#xff08;数据块&#xff09;。本节介绍以字符形式读写文件。 以字符形式读写文件时&#xff0c;每次可以从文件中读取一个字符…...

c语言fgetc函数_C语言中的fgetc()函数与示例

c语言fgetc函数C中的fgetc()函数 (fgetc() function in C) Prototype: 原型&#xff1a; int fgetc(FILE *filename);Parameters: 参数&#xff1a; FILE *filenameReturn type: int 返回类型&#xff1a; int Use of function: 使用功能&#xff1a; In the file handling…...

线性代数及其应用(英文第四版)下载

线性代数及其应用&#xff08;英文第四版&#xff09; PDF原文下载地址&#xff1a;https://anandinstitute.org/pdf/linearapplication.pdf...

Mac中搜狗输入法在各应用中默认中英文状态

使用Mac&#xff0c;而且也使用搜狗输入法的同学&#xff0c;有福了&#xff0c;分享下在其中提高效率的小窍门。 如下是搜狗输入法的设置界面&#xff0c; 1、在高级的选项中。 2、我们在自动切换到英文状态的前面点击勾选状态。 3、点击App清单。 出现了下图&#xff0c;我…...

APP上架各大应用市场对比

因公司上架APP&#xff0c;在上架APP中发现了各种不同的问题&#xff0c;拿出来跟大家分享 1. 苹果appstore&#xff1a;每年拿钱养着&#xff0c;上架审核很严格&#xff0c;不需要软著&#xff0c;回复全程英文&#xff0c;真的会有人去测&#xff0c;因时差问题&#xff0c…...