1. 程式人生 > 其它 >棧和佇列的實現Java

棧和佇列的實現Java

棧和佇列

 

 

棧的實現

tt指向棧頂,tt初始值為0

 

 

佇列實現

hh為隊頭,tt為隊尾,tt初始值為負一,在隊尾插入元素,在隊頭彈出元素

 

 

 

 

 1 import java.util.*;
 2 public class Main{
 3     static int stk[]=new int[100010];
 4     static int tt=0;//棧頂
 5     //彈出
 6     public static void pop(){
 7         tt--;
 8     }
 9     //入棧
10     public static void push(int
x){ 11 stk[++tt]=x; 12 } 13 //判斷棧是否為空 14 public static String empty(){ 15 if(tt==0){ 16 return "YES"; 17 } 18 return "NO"; 19 } 20 //查詢棧頂元素 21 public static int query(){ 22 return stk[tt]; 23 } 24 public static void main(String[] args){
25 Scanner scan=new Scanner(System.in); 26 int m=scan.nextInt(); 27 while(m-->0){ 28 String s=scan.next(); 29 if(s.equals("push")){ 30 int x=scan.nextInt(); 31 push(x); 32 } 33 else if(s.equals("pop")){
34 pop(); 35 } 36 else if(s.equals("empty")){ 37 System.out.println(empty()); 38 } 39 else{ 40 System.out.println(query()); 41 } 42 } 43 } 44 }

 

 

 1 import java.util.*;
 2 public class Main{
 3     static int q[]=new int[100010];
 4     static int tt=-1;//隊尾
 5     static int hh=0;//隊首
 6     //出隊
 7     public static void pop(){
 8         hh++;
 9     }
10     //入隊
11     public static void push(int x){
12         q[++tt]=x;
13     }
14     //判斷隊是否為空
15     public static String empty(){
16         if(hh<=tt){
17             return "NO";
18         }
19         return "YES";
20     }
21     //查詢隊頂元素
22     public static int query(){
23         return q[hh];
24     }
25     public static void main(String[] args){
26         Scanner scan=new Scanner(System.in);
27         int m=scan.nextInt();
28         while(m-->0){
29             String s=scan.next();
30             if(s.equals("push")){
31                 int x=scan.nextInt();
32                 push(x);
33             }
34             else if(s.equals("pop")){
35                 pop();
36             }
37             else if(s.equals("empty")){
38                 System.out.println(empty());
39             }
40             else{
41                 System.out.println(query());
42             }
43         }
44     }
45 }