java堆棧功能代碼 java堆棧類(lèi)

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

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

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到汕頭網(wǎng)站設(shè)計(jì)與汕頭網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類(lèi)型包括:成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋汕頭地區(qū)。

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)步。

Java如何實(shí)現(xiàn)堆棧

//這是JDK提供的棧

import java.util.Stack;

public class UsingStack {

public static void main(String[] args) {

//構(gòu)造棧對(duì)象,使用類(lèi)型限制,只能存儲(chǔ)Integer數(shù)據(jù)

StackInteger s = new StackInteger();

//1、2、3依次入棧

s.push(1);

s.push(2);

s.push(3);

//3、2、1依次出棧

System.out.println(s.pop());

System.out.println(s.pop());

System.out.println(s.pop());

}

}

//這是我寫(xiě)的順序結(jié)構(gòu)的棧

import java.util.EmptyStackException;

import java.util.Vector;

public class UsingStack{

public static void main(String[] args){

//構(gòu)造棧對(duì)象,使用類(lèi)型限制,只能存儲(chǔ)Integer數(shù)據(jù)

MyStackInteger s = new MyStackInteger();

//1、2、3依次入棧

s.push(1);

s.push(2);

s.push(3);

//3、2、1依次出棧

System.out.println(s.pop());

System.out.println(s.pop());

System.out.println(s.pop());

}

}

/**

* 棧類(lèi)

* @author developer_05

* @param T

*/

class MyStackT extends VectorT{

/**

* 構(gòu)造方法

*/

public MyStack(){

}

/**

* 入棧方法

* @param item 待入棧的元素

* @return 返回入棧的元素

*/

public T push(T item) {

addElement(item);

return item;

}

/**

* 出棧方法(同步處理)

* @return 返回出棧元素

*/

public synchronized T pop() {

T obj;

int len = size();

if (len == 0)

throw new EmptyStackException();

obj = elementAt(len - 1);

removeElementAt(len - 1);

return obj;

}

/**

* 判斷棧是否為空的方法

* @return 返回true(棧空)或false(棧非空)

*/

public boolean empty() {

return size() == 0;

}

private static final long serialVersionUID = 1L;

}

1. 用C++或Java寫(xiě)一個(gè)關(guān)于堆棧的類(lèi)描述,并為堆棧的壓棧(push)和出棧(pop)操作編寫(xiě)方法

#includeiostream.h

using namespace std;

const int MAX=5; //假定棧中最多保存5個(gè)數(shù)據(jù)

//定義名為stack的類(lèi),其具有棧功能

class stack {

//數(shù)據(jù)成員

float num[MAX]; //存放棧數(shù)據(jù)的數(shù)組

int top; //指示棧頂位置的變量

public:

//成員函數(shù)

void init(void) { top=0; } //初始化函數(shù)

void push(float x) //入棧函數(shù)

{

if (top==MAX){

cout"Stack is full !"endl;

return;

};

num[top]=x;

top++;

}

float pop(void) //出棧函數(shù)

{

top--;

if (top0){

cout"Stack is underflow !"endl;

return 0;

};

return num[top];

}

}

//以下是main()函數(shù),其用stack類(lèi)創(chuàng)建棧對(duì)象,并使用了這些對(duì)象

main(void)

{

//聲明變量和對(duì)象

int i;

float x;

stack a,b; //聲明(創(chuàng)建)棧對(duì)象

//以下對(duì)棧對(duì)象初始化

a.init();

b.init();

//以下利用循環(huán)和push()成員函數(shù)將2,4,6,8,10依次入a棧對(duì)象

for (i=1; i=MAX; i++)

a.push(2*i);

//以下利用循環(huán)和pop()成員函數(shù)依次彈出a棧中的數(shù)據(jù)并顯示

for (i=1; i=MAX; i++)

couta.pop()" ";

coutendl;

//以下利用循環(huán)和push()成員函數(shù)將鍵盤(pán)輸入的數(shù)據(jù)依次入b棧

cout"Please input five numbers."endl;

for (i=1; i=MAX; i++) {

cinx;

b.push(x);

}

//以下利用循環(huán)和pop()成員函數(shù)依次彈出b棧中的數(shù)據(jù)并顯示

for (i=1; i=MAX; i++)

coutb.pop()" ";

}

用java代碼編寫(xiě)堆棧?

參看: 1 import java.util.*; 2 3 public class TestStack { 4 public static void main(String[] args) { 5 Stack stack = new Stack(); 6 7 for(int i = 0; i 10; i++) { 8 stack.push(new Integer(i)); 9 }1011 if(!stack.empty()) {12 System.out.println(stack.pop());13 }14 }15 }

用java實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)“棧

Java棧的實(shí)現(xiàn)

public class MyStack { //定義一個(gè)堆棧類(lèi)

int[] array; //用int數(shù)組來(lái)保存數(shù)據(jù),根據(jù)需要可以換類(lèi)型

int s_size; //定義堆棧的寬度

public MyStack(int i){ //定義一個(gè)帶參數(shù)構(gòu)造器

array=new int[i]; //動(dòng)態(tài)定義數(shù)組的長(zhǎng)度

s_size=0; //堆棧的默認(rèn)寬度為0

}

public MyStack(){ //默認(rèn)構(gòu)造器

this(50); //默認(rèn)構(gòu)造器可容納50個(gè)元素

}

public void push(int i){ //壓棧

array[this.s_size]=i;

this.s_size++;

}

public int pop(){ //從堆棧中取元素,從棧頂開(kāi)始取

if(this.s_size!=0){

int t=array[s_size-1]; //用中間變量保存棧頂?shù)脑?/p>

array[s_size-1]=0; //取完元素該位置設(shè)為0

s_size--; //棧的大小減1

return t; //返回棧頂元素

}else{

System.out.println("This stack is empty"); //當(dāng)棧為空時(shí)顯示提示信息,返回0

return 0;

}

}

public boolean isEmpty(){ //判斷棧是否為空

return this.s_size==0;

}

public int top(){ //從棧頂取值,功能和 pop() 方法一樣

if(!this.isEmpty()){

int t=array[this.s_size-1];

array[this.s_size-1]=0;

this.s_size--;

return t;

}else{

System.out.println("This stack is empty!");

return 0;

}

}

public void printAll(){ //打印出堆棧中的所有元素的值,不是取出,元素依然在堆棧里

if(!this.isEmpty()){

for(int i=this.s_size - 1;i=0;i--){

System.out.println(array[i]);

}

}

}

//下面是測(cè)試代碼

public static void main(String[] args){

MyStack stack=new MyStack();

stack.push(4);

stack.push(5);

stack.push(6);

stack.push(7);

//System.out.println(stack.isEmpty());

stack.printAll();

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

System.out.println(stack.top());

System.out.println(stack.top());

System.out.println(stack.top());

System.out.println(stack.top());

System.out.println(stack.top());

}

}

網(wǎng)頁(yè)名稱(chēng):java堆棧功能代碼 java堆棧類(lèi)
標(biāo)題網(wǎng)址:http://www.muchs.cn/article10/hhoodo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google小程序開(kāi)發(fā)、企業(yè)網(wǎng)站制作品牌網(wǎng)站設(shè)計(jì)、自適應(yīng)網(wǎng)站、網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)