真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java棧的實(shí)現(xiàn)代碼 java棧怎么寫

如何使用java代碼實(shí)現(xiàn)棧和隊(duì)列

如何使用java代碼實(shí)現(xiàn)棧和隊(duì)列

創(chuàng)新互聯(lián)建站專注于秦安網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供秦安營(yíng)銷型網(wǎng)站建設(shè),秦安網(wǎng)站制作、秦安網(wǎng)頁設(shè)計(jì)、秦安網(wǎng)站官網(wǎng)定制、小程序定制開發(fā)服務(wù),打造秦安網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供秦安網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

import java.util.Scanner;

import java.util.Stack;

/**

* @author Owner

*

*/

public class Main {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int n= sc.nextInt();//3條測(cè)試數(shù)據(jù)數(shù)據(jù)

StackCharacter stack = null;

while(n!=0){

//從控制臺(tái)讀入一個(gè)測(cè)試字符串[]() [(])

String str = sc.next();

//如果該輸入字符串為奇數(shù),說明不匹配

if(str.length() % 2 == 1){

System.out.println("No");

}else{

//說明字符是偶數(shù)

stack = new StackCharacter();

//遍歷第一條測(cè)試字符串[]() [(])

for(int i=0;istr.length();i++){

if(stack.isEmpty()){

//如果棧是空的

stack.push(str.charAt(i));

}else if(stack.peek() == '[' str.charAt(i) == ']' || stack.peek() == '(' str.charAt(i) == ')'){

//說明此時(shí)棧中字符不是空的,并且符合,

stack.pop();

}else{

stack.push(str.charAt(i));

}

}

if(stack.isEmpty()){

//如果棧是空的,說明a href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3mhDvP10Ln19hrANbP1fk0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3ErHnLP1nsPHDznHTkn1fYPHnz" target="_blank" class="baidu-highlight"括號(hào)/a匹配

System.out.println("Yes");

}else{

//說明棧不為空,a href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3mhDvP10Ln19hrANbP1fk0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3ErHnLP1nsPHDznHTkn1fYPHnz" target="_blank" class="baidu-highlight"括號(hào)/a不匹配

System.out.println("No");

}

}

n--;

}

}

}

用java編寫出來:用數(shù)組實(shí)現(xiàn)一個(gè)棧

public class Stack {

private Object[] stack;

//這個(gè)不需要;

//private int top = 0; //初始化棧頂

//這個(gè)也不需要;

//寫一個(gè)棧出來,最好是可以動(dòng)態(tài)的,可以自己改變大小的,即數(shù)組的長(zhǎng)度;

//private int size = 0; // 初始化大小

//元素個(gè)數(shù);

private int size;

//默認(rèn)長(zhǎng)度為10;

public Stack(){

this(10);

}

//也可以自己設(shè)置長(zhǎng)度,即容量;

public Stack(int len){

stack = new Object[len];

}

//返回元素個(gè)數(shù);

public int size(){

return size;

}

//返回?cái)?shù)組長(zhǎng)度,即容量;

public int capacity(){

return stack.length;

}

//實(shí)現(xiàn)動(dòng)態(tài)的數(shù)組;

public void ensureCapacity(){

if(size() == capacity()){

Object[] newStack = new Object[size() * 3 / 2 + 1];

System.arraycopy(stack, 0, newStack, 0, size());

stack = newStack;

}

}

//入棧;

public void push(Object o){

size++;

ensureCapacity();

stack[size - 1] = o;

}

/*

public void push(Object object) {

if (isFull()) {

System.out.println("棧滿! 入棧失敗");

}

stack[top++] = object;

}

*/

//判空;

public boolean isEmpty(){

return size == 0;

}

//出棧;

public Object pop(){

//首先要判空;

if(isEmpty()){

throw new ArrayIndexOutOfBoundsException("不能為空");

}

Object o = stack[--size];

stack[size] = null;

return o;

}

/*

// 出棧

public Object pop() {

Object object = stack[--top];

stack[top] = null;

return object;

}

*/

/*

// 計(jì)算棧當(dāng)前大小

public int size() {

return top;

}

// 判斷是否是空棧

public boolean isEmpey() {

return top == 0;

}

// 判斷是否棧滿

public boolean isFull() {

return top = size;

}

public Stack(int size) {

this.size = size;

}

*/

public static void main(String[] args) {

Stack stack = new Stack(3);

String[] data = new String[] { "a", "b", "c" };

for (int i = 0; i data.length; i++) {

stack.push(data[i]);

System.out.println(data[i] + "");

}

System.out.println("***********");

while (!stack.isEmpty()) {

System.out.println(stack.pop() + "");

}

//}

}

}

你自己對(duì)比一下,我是在你的里面修改的

用JAVA棧的方法實(shí)現(xiàn)十進(jìn)制轉(zhuǎn)十六進(jìn)制

看到這道題目想到了三個(gè)方法,依次給你列出(棧的方式,遞歸,數(shù)組)

棧的方式:

//思路:將十進(jìn)制數(shù)(number)除以R取余,讓取得的余數(shù)(number Mod R )進(jìn)棧,讓十進(jìn)制數(shù)變?yōu)?/p>

number/R,重復(fù)上述過程,直到number等于0為止,然后依次從棧中取出數(shù)據(jù)即為所求,直到棧為空,下面是實(shí)現(xiàn)的代碼:

#includestdio.h

#includestdlib.h

#define MAX_SIZE 80

typedef struct

{//棧的數(shù)據(jù)結(jié)構(gòu),采用數(shù)組

char data[MAX_SIZE];

int top;

}stack;

int isfull(stack s)

{//判斷棧是否已滿

return (++s.top==MAX_SIZE);

}

int isempty(stack s)

{//判斷棧為空

return s.top==-1;

}

void push(stack * s,char in_data)

{//進(jìn)棧

if(isfull(*s))

{

printf("棧已滿,不能執(zhí)行操作!\n");

exit(1);

}

s-data[++s-top]=in_data;

}

void pop(stack *s)

{//出棧

if(isempty(*s))

{

printf("棧已空,不能執(zhí)行操作!\n");

exit(1);

}

s-top--;

}

char top_value(stack *s)

{//取棧頂元素

if(isempty(*s))

{

printf("棧已空,不能執(zhí)行操作!\n");

exit(1);

}

return s-data[s-top];

}

int main(int argc,char** argv)

{

int number;

stack result;

result.top=-1;

int r_range;

printf("輸入轉(zhuǎn)換的數(shù)據(jù)和對(duì)應(yīng)的進(jìn)制:");

scanf("%d%d",number,r_range);

printf("%d對(duì)應(yīng)的%d進(jìn)制為:",number,r_range);

while(number!=0)

{

char input;

if(number%r_range=10)

input=((number%r_range)-10)+'a';

else

input=((number%r_range)+'0');

push(result,input);

number=number/r_range;

}

while(!isempty(result))

{

putchar(top_value(result));

pop(result);

}

return 0;

}

====================================================================

遞歸的方式:定義一個(gè)輸出字符串,讓十進(jìn)制數(shù)(number)除以要轉(zhuǎn)換的進(jìn)制R 若結(jié)果不為0,則繼續(xù)執(zhí)行前述操作,直到得到除的結(jié)果為零,此時(shí)number除以R取其余數(shù),將其結(jié)果(number Mod R)映射到指定的輸出字符數(shù)組中下標(biāo)輸出即為結(jié)果(描述的不是很好,你看代碼吧)

//用這種方法也比較可以

#includestdio.h

void ten_to_any(int number,int range_t)

{//遞歸實(shí)現(xiàn)

char text[]="0123456789abcdef";

int k=number/range_t;

if(k)

ten_to_any(k,range_t);

putchar(text[number%range_t]);

}

int main()

{

int number,r_range;

while(1)

{

printf("\n輸入轉(zhuǎn)換的數(shù)據(jù),和對(duì)應(yīng)進(jìn)制:");

scanf("%d%d",number,r_range);

if(r_range16||r_range2)

{

printf("超出了范圍!");

break;

}

printf("%d對(duì)應(yīng)的%d進(jìn)制為:",number,r_range);

ten_to_any(number,r_range);

}

return 0;

}

//采用數(shù)組的形式

這是我上次回答別人的

用一個(gè)字符串保存轉(zhuǎn)換的結(jié)果(str[80])假設(shè)十進(jìn)制數(shù)為number,轉(zhuǎn)換的進(jìn)制為digits,則將numbers%digits(根據(jù)余數(shù)的情況做相應(yīng)處理)結(jié)果保存在字符串str中,將numbers變?yōu)閚umbers/digits;直到numbers為零。得到的結(jié)果為逆序,需要將其倒轉(zhuǎn),倒轉(zhuǎn)后即為所求。

//-----------c語言實(shí)現(xiàn)10進(jìn)制轉(zhuǎn)2~16進(jìn)制

#includestdio.h

#includestring.h

void TentoAny(int number,char *str,int digits)

{

int i=0;

if(digits16||digits2)//非2~16進(jìn)制則直接退出

return ;

while(number)

{

if(number%digits=10)

{

str[i++]='A'+(number%digits-10);

}

else

{

str[i++]=number%digits+'0';

}

}

str[i]='\0';

strrev(str);//strrev函數(shù)定義在string.h中的,是對(duì)字符串做逆序處理的函數(shù)

//這里需要逆序的原因是因?yàn)榈玫降慕Y(jié)果為該進(jìn)制的逆序

}

怎么用java代碼實(shí)現(xiàn)棧內(nèi)存?

使用java.util包中的Stack類創(chuàng)建一個(gè)棧對(duì)象

public Object push(Object data);輸入數(shù)據(jù),實(shí)現(xiàn)壓棧

public Object pop();輸出數(shù)據(jù),實(shí)現(xiàn)彈棧

public boolean empty()判空

public Object peek();查看棧頂元素

可以去查查API嘛

我也是學(xué)java的,大家一起進(jìn)步。


網(wǎng)站欄目:java棧的實(shí)現(xiàn)代碼 java棧怎么寫
鏈接分享:http://weahome.cn/article/ddcispg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部