Presentation is loading. Please wait.

Presentation is loading. Please wait.

בניית מחסנית סטטית Static Stack Implementation מורים מובילים תשע"ה

Similar presentations


Presentation on theme: "בניית מחסנית סטטית Static Stack Implementation מורים מובילים תשע"ה"— Presentation transcript:

1 בניית מחסנית סטטית Static Stack Implementation מורים מובילים תשע"ה
דפנה מינסטר 2015

2 אתחול מחסנית סטטית (בנאי)
data sTop -1 [0] [1] [2] [3] [4] [5] [6] [-1] public class StaticStack < T > { private T [ ] data ; // המערך private int sTop ; // מיקום ראש המחסנית public StaticStack ( ) { this.data = ( T [ ] ) new Object [ 100 ] ; this.sTop = -1 ; } סדר גודל: O(1) כל הפעולות הן בסיסיות ואין תלות באורך הקלט // ?האם מחסנית ריקה public boolean isEmpty ( ) { return ( this.sTop = = -1 ) ; } סדר גודל: O(1) כל הפעולות הן בסיסיות ואין תלות באורך הקלט

3 דחיפה למחסנית - push private static Object [ ] addPlaces ( Object [ ] array , int n ) { // איברים nהגדלת המערך המתקבל ב- Object [ ] newArray = new Object [ array.length + n ] ; for ( int i = 0 ; i < array.length ; i++ ) newArray [ i ] = array [ i ] ; return newArray ; } data sTop -1 [0] [1] [2] [3] [4] [5] [6] [-1] public void push ( T item ) { if ( this.sTop = = this.data.length - 1 ) addPlace ( this.data , 10 ) ; }

4 דחיפה למחסנית - push private static Object [ ] addPlaces ( Object [ ] array , int n ) { // איברים nהגדלת המערך המתקבל ב- Object [ ] newArray = new Object [ array.length + n ] ; for ( int i = 0 ; i < array.length ; i++ ) newArray [ i ] = array [ i ] ; return newArray ; } data sTop [0] [1] [2] [3] [4] [5] [6] [-1] public void push ( T item ) { if ( this.sTop = = this.data.length - 1 ) addPlace ( this.data , 10 ) ; this.sTop + + ; }

5 דחיפה למחסנית - push private static Object [ ] addPlaces ( Object [ ] array , int n ) { // איברים nהגדלת המערך המתקבל ב- Object [ ] newArray = new Object [ array.length + n ] ; for ( int i = 0 ; i < array.length ; i++ ) newArray [ i ] = array [ i ] ; return newArray ; } item data sTop [0] [1] [2] [3] [4] [5] [6] [-1] public void push ( T item ) { if ( this.sTop = = this.data.length - 1 ) addPlace ( this.data , 10 ) ; this.sTop + + ; this.data [ this.sTop ] = item ; } לכתב בשורה אחת אפשר גם // this.data [ this.sTop++ ] = item ; }

6 } דחיפה למחסנית - push סדר גודל: O(n) סדר גודל: O(n)
private static Object [ ] addPlaces ( Object [ ] array , int n ) { // איברים nהגדלת המערך המתקבל ב- Object [ ] newArray = new Object [ array.length + n ] ; for ( int i = 0 ; i < array.length ; i++ ) newArray [ i ] = array [ i ] ; return newArray ; } סדר גודל: O(n) n - מציין את מספר האיברים במחסנית. הפעולה מעתיקה את כל אברי המערך למערך חדש שאר הפעולות הן בסיסיות. public void push ( T item ) { if ( this.sTop = = this.data.length - 1 ) addPlace ( this.data , 10 ) ; this.sTop + + ; this.data [ this.sTop ] = item ; } סדר גודל: O(n) n - מציין את מספר האיברים במחסנית. הפעולה מזמנת את הפעולהaddPlaces שסדר הגודל שלה הוא O(n) , שאר הפעולות הן בסיסיות. לכתב בשורה אחת אפשר גם // this.data [ this.sTop++ ] = item ; }

7 שליפה ממחסנית - pop public T pop ( ) { } [6] [5] [4] [3] [2] [1] [0] 2
item2 item3 item1 data sTop 2 [0] [1] [2] [3] [4] [5] [6] [-1] public T pop ( ) { }

8 שליפה ממחסנית - pop public T pop ( ) {
item2 item3 item1 data sTop 2 [0] [1] [2] [3] [4] [5] [6] [-1] public T pop ( ) { T out = this.data [ this.sTop ] ; } out item3

9 שליפה ממחסנית - pop this.sTop - - ; return ( out ) ; public T pop ( )
item2 item3 item1 data sTop 1 [0] [1] [2] [3] [4] [5] [6] [-1] public T pop ( ) { T out = this.data [ this.sTop ] ; this.sTop - - ; return ( out ) ; } out item3

10 שליפה ממחסנית - pop הצצה למחסנית - top
item2 item3 item1 data sTop 2 [0] [1] [2] [3] [4] [5] [6] [-1] public T pop ( ) { T out = this.data [ this.sTop ] ; this.sTop - - ; return ( out ) ; } הצצה למחסנית - top public T top ( ) { return ( this.data [ this.sTop ] ); }

11 שליפה ממחסנית - pop הצצה למחסנית - top
public T pop ( ) { T out = this.data [ this.sTop ] ; this.sTop - - ; return ( out ) ; } סדר גודל: O(1) כל הפעולות הן בסיסיות ואין תלות באורך הקלט הצצה למחסנית - top public T top ( ) { return ( this.data [ this.sTop ] ); } סדר גודל: O(1) כל הפעולות הן בסיסיות ואין תלות באורך הקלט

12 תכנית ראשית ו- toString
  public String toString() { String s = " The Stack is -> [ " ; for ( int i = this.sTop ; i > 0 ; i -- ) s + = this.data [ i ] + " , " ; return ( s + this.data [0] + " ] \n " ) ; } public static void main ( String [ ] args ) { // יצירת מחסנית והדפסתה StaticStack < Integer > s = new StaticStack < Integer > ( ) ; s.push ( 7 ) ; s.push ( 2 ) ; System.out.println ( s.toString ( ) ) ; s.push ( 4 ) ; s.push ( 6 ) ; s.push ( 3 ) ;   } } // class StaticStack סדר גודל: O(n) n - מציין את מספר האיברים במחסנית. הפעולה עוברת על כל אברי המערך לצורך שרשורם במחרוזת, שאר הפעולות הן בסיסיות.


Download ppt "בניית מחסנית סטטית Static Stack Implementation מורים מובילים תשע"ה"

Similar presentations


Ads by Google