Java中的数据结构(1)----栈和队列

马上要找工作了,数据结构貌似是笔试的必考题,所以要复习一遍。

首先是栈--先进后出

Java代码  收藏代码
  1. package com.wz.util;  
  2.   
  3. public class Stack<T> {  
  4.     private int MAX;  
  5.     private int top;  
  6.     private T []stack;  
  7.     Stack (int max){  
  8.         MAX = max;  
  9.         stack = (T[])new Object [MAX];  
  10.         top = -1;  
  11.     }  
  12.     //入栈  
  13.     public int push(T t){  
  14.         int value = -1;  
  15.         if(top >= MAX-1){  
  16.             System.out.println("stack is full!");  
  17.             value =  0;    // 表示栈已满  
  18.             }  
  19.         else{  
  20.             top++;  
  21.             stack[top] = t;  
  22.             value = 1;  
  23.         }  
  24.         return value;  
  25.     }  
  26.     //出栈  
  27.     public T pop(){  
  28.         if(top<0){  
  29.             System.out.println("stack is empty!");  
  30.         return null;     //栈空  
  31.         }  
  32.         else{  
  33.             top --;  
  34.             return stack[top+1];  //返回弹出值  
  35.         }  
  36.     }  
  37. }  

 

队列--先进先出

Java代码  收藏代码
  1. package com.wz.util;  
  2.   
  3. public class Queue<T> {  
  4.     private int front;  //对头  
  5.     private int rear;   //队尾  
  6.     private int MAX;  
  7.     private T [] queue;  
  8.       
  9.     Queue(int max){  
  10.         MAX = max;  
  11.         queue = (T [])new Object[MAX];  
  12.         rear = -1;  
  13.         front = 0;  
  14.     }  
  15.     //入队  
  16.     public int enQueue(T t){  
  17.         int value = -1;  
  18.         if(rear >=MAX-1){  
  19.             System.out.println("Queue is full!");  
  20.             value = 0;  
  21.             }  
  22.         else{  
  23.             rear ++;  
  24.             queue[rear] = t;  
  25.             value = 1;  
  26.         }  
  27.         return value;  
  28.     }  
  29.     //出队  
  30.     public T deQueue(){  
  31.         if(front>rear){  
  32.             System.out.println("Queue is empty!");  
  33.             return null;  
  34.         }  
  35.         else{  
  36.             front++;  
  37.             return queue[front-1];  
  38.         }  
  39.     }  
  40. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值