79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: Create a Stack Class
 | 
						|
localeTitle: إنشاء فئة مكدس
 | 
						|
---
 | 
						|
## إنشاء فئة مكدس
 | 
						|
 | 
						|
### طريقة:
 | 
						|
 | 
						|
*   Stack هو بنية بيانات مجردة.
 | 
						|
*   يتبع Stack مبدأ LIFO / FILO.
 | 
						|
 | 
						|
## \- في هذا التحدي ، نحتاج إلى إضافة `.push()` و `.pop()` و `.peek()` و `.isEmpty()` و `.clear()` للفئة.
 | 
						|
 | 
						|
*   `push()` طريقة دفع القيمة إلى المكدس.
 | 
						|
*   أسلوب `pop()` ينبثق القيمة الأولى من المكدس.
 | 
						|
*   الأسلوب `peek()` إرجاع القيمة الأولى من المكدس.
 | 
						|
*   يتحقق الأسلوب `isEmpty()` إذا كان مكدس ths فارغ.
 | 
						|
 | 
						|
## \- `.clear()` الأسلوب يزيل جميع العناصر من المكدس.
 | 
						|
 | 
						|
| DS | الوصول | البحث | إدراج | حذف | | ----- | ------ | ------ | ------ | ------ | | كومة | ن | ن | 1 | 1 |
 | 
						|
 | 
						|
### حل:
 | 
						|
 | 
						|
#### الأساسية:
 | 
						|
 | 
						|
 `function Stack() { 
 | 
						|
    var collection = []; 
 | 
						|
    this.print = function() { 
 | 
						|
        console.log(collection); 
 | 
						|
    }; 
 | 
						|
    this.push = function(val){ 
 | 
						|
        return collection.push(val); 
 | 
						|
    } 
 | 
						|
    this.pop = function(){ 
 | 
						|
        return collection.pop(); 
 | 
						|
    } 
 | 
						|
    this.peek = function(){ 
 | 
						|
        return collection[collection.length-1]; 
 | 
						|
    } 
 | 
						|
    this.isEmpty = function(){ 
 | 
						|
        return collection.length === 0; 
 | 
						|
    } 
 | 
						|
    this.clear = function(){ 
 | 
						|
        collection.length = 0; 
 | 
						|
    } 
 | 
						|
 } 
 | 
						|
` 
 | 
						|
 | 
						|
#### متقدم - بنية ES6 Class:
 | 
						|
 | 
						|
 `class Stack { 
 | 
						|
    constructor() { 
 | 
						|
        this.collection = []; 
 | 
						|
    } 
 | 
						|
    print(){ 
 | 
						|
        console.log(this.collection); 
 | 
						|
    } 
 | 
						|
    push(val){ 
 | 
						|
        retiurn this.collection.push(val); 
 | 
						|
    } 
 | 
						|
    pop(){ 
 | 
						|
        return this.collection.pop(); 
 | 
						|
    } 
 | 
						|
    peek(){ 
 | 
						|
        return this.collection[this.collection.length-1]; 
 | 
						|
    } 
 | 
						|
    isEmpty(){ 
 | 
						|
        return this.collection.length === 0; 
 | 
						|
    } 
 | 
						|
    clear(){ 
 | 
						|
        return this.collection.length = 0; 
 | 
						|
    } 
 | 
						|
 } 
 | 
						|
` 
 | 
						|
 | 
						|
\### مصادر:
 | 
						|
 | 
						|
*   [ويكيبيديا](https://en.wikipedia.org/wiki/Stack_(abstract_data_type)) |