الوقت/التاريخ الآن هو الجمعة مايو 03, 2024 12:52 am
2 نتيجة بحث عن Stack
إستخدامات الكلمة Static فى تطبيقات الجافا
أهلا بيك الاخت الكريمة @Laren99
لكنى اريد أن افهم هل ردك عبار عن استفسار ام اجابة عن استفسار ؟كما يجب عدم الخلط بين الكلمة المحدوزة #static و بين الفئة #Stack الخاصة بمجموعات البيانات
على اى حال سيتم نقل مشارتك الى قسم نقاش و استفسارات الاعضاء حتى تعم الفائدة لما نشرتي ....
- في الأربعاء يوليو 08, 2020 2:22 pm
- ابحث في: أساسيات اللغة Java Basics
- موضوع: إستخدامات الكلمة Static فى تطبيقات الجافا
- المساهمات: 5
- مشاهدة: 1559
التعامل مع فئة المكدس أو الكومة Stack in java
اهلا بكم اخوانى الكراممفهوم المكدس أو الكومة Stack
في الحوسبة ، المكدس هو بنية بيانات تستخدم لتخزين مجموعة من الكائنات. لذلك وفرت لغة الجافا الفئة #util_Stack لانشاء هذه البنية بواسطة فقط المُنشئ الافتراضي ، الذي ينشئ مكدسًا فارغًا.
تتضمن فئة #Stack جميع الأساليب المحددة بواسطة Vector ، ويضيف العديد من الطرق الخاصة به ...ويتم إضافة العناصر وتخزينها في الكومة باستخدام الاسلوب #push . كما يمكن استرجاع الكائنات باستخدام الاسلوب #pop ، فيؤدي ذلك إلى إزالة العنصر من المكدس.
وتطبق فئة Stack طريقة (LIFO) لارجاع العناصر وهى اختصار للجملة الانجليزية #Last-in-first-out بحيث عندما تقوم بسحب عنصر من المكدس ، فإنه يأتي من الأعلى. بمعنى آخر ، العنصر الأخير الذي أضفته إلى المكدس هو أول عنصر الذى يعود عند استخدام الاسلوب pop
وحتى نفهم بشكل اوضع دعونى اكتب لك المثال التالي :
- الكود:
import java.util.Stack;
public class Test1 {
public static void main(String[] args) {
// إنشاء كومة أو مكدس
Stack st = new Stack();
// إضافة بياتات الى الكومة
st.push(2);
st.push(1);
st.push(5);
st.push(3);
st.push(4);
// طباعة الكومة
System.out.println("stack befor pop: " + st);
// ارجاع بيانات المكدس بطريقة الداخل اخير خارج اولا
st.pop();
System.out.println("stack After pop: " + st);
}
}
الاخراج :
- الكود:
stack befor pop: [2, 1, 5, 3, 4]
stack After pop: [2, 1, 5, 3]
فى المثال اعلاه ستجد أن أخر عنصر تم ادخالة للمكدس st هو القيمة 4 و بالتالى عند سحب عنصر واحد من مكدسنا هذا كانت القيمة 4 هى القيمة التى تم سحبها
إستخدام الطريقة peek() Stack
تستخدم الطريقة #peek() لإرجاع كائنًا من أعلى المكدس كما فى المثال التالى :
- الكود:
import java.util.Stack;
class Main {
public static void main(String[] args) {
Stack<String> animals= new Stack<>();
// Add elements to Stack
animals.push("Dog");
animals.push("Horse");
animals.push("Cat");
System.out.println("Stack: " + animals);
// Access element from the top
String element = animals.peek();
System.out.println("Element at top: " + element);
}
}
Output
Stack: [Dog, Horse, Cat]
Element at top: Cat
ابحث عن العناصر فى المكدس أو الكومة
للبحث عن عنصر في المكدس ، نستخدم طريقة search (). تقوم بإرجاع موضع العنصر من أعلى المكدس. فمثلا،
- الكود:
import java.util.Stack;
class Main {
public static void main(String[] args) {
Stack<String> animals= new Stack<>();
// Add elements to Stack
animals.push("Dog");
animals.push("Horse");
animals.push("Cat");
System.out.println("Stack: " + animals);
// Search an element
int position = animals.search("Horse");
System.out.println("Position of Horse: " + position);
}
}
Output
Stack: [Dog, Horse, Cat]
Position of Horse: 2
وللتحقق مما إذا كانت المكدس فارغة أم لا ، نستخدم الطريقة #empty() ...مثال :
- الكود:
import java.util.Stack;
class Main {
public static void main(String[] args) {
Stack<String> animals= new Stack<>();
// Add elements to Stack
animals.push("Dog");
animals.push("Horse");
animals.push("Cat");
System.out.println("Stack: " + animals);
// Check if stack is empty
boolean result = animals.empty();
System.out.println("Is the stack empty? " + result);
}
}
Output
Stack: [Dog, Horse, Cat]
Is the stack empty? false
ترتيب العناصر فى المكدس أو الكومة
لكى تستطيع ترتيب عناصر الكومة أو المكدس ترتيبا تصاعديا علينا انشاء كومة أخرى دعونا نسميها مكدس مؤقت temporary stack في حين تعطى المكدس الاصلي اسم mainStack لانشاء طريقة لترتيب عناصر الكومة ترتبيا تصاعديا على النحو التالى :
- الكود:
public Stack <Integer> Sorting(Stack<Integer> mainStack) {
//إنشاء الكومة التانية باسم مؤقت
Stack <Integer> temporary = new Stack();
// حلقة تكرارية تنتهى عندم يكون المكدس فارغ
while (!mainStack.isEmpty()) {
// سحب العنصر الاول فى المكدس طوال حلقة التكرار
int X = mainStack.pop();
// كرر طالما المكدس المؤقت غير فارغ وأعلى المكدس المؤقت أكبر من أكس
while (! temporary.isEmpty() && temporary.peek() > X) {
// اسحب العناصر من المكدس المؤقت واضفه إلى المكدس الأصلي
mainStack.push( temporary.pop());
}
temporary.push(X);
}
return temporary;
}
}
و المثال بالكامل على النحو التالى :
- الكود:
import java.util.Stack;
public class StackSorting {
public static void main(String[] args) {
// إنشاء كومة أو مكدس الاصلى او الرئيسى
Stack <Integer> st = new Stack();
// إضافة بياتات الى الكومةالرئسية
st.push(2);
st.push(1);
st.push(5);
st.push(3);
st.push(4);
// طباعة الكومة
System.out.println("stack befor pop: " + st);
// ارجاع بيانات المكدس بطريقة الداخل اخير خارج اولا
st.pop();
System.out.println("stack After pop: " + st);
StackSorting s = new StackSorting();
// استخدام الطريقة لتريبت عناصر المكدس
Stack<Integer> sortedStack = s.Sorting(st);
// طباعة المكدس بعد الترتيب
System.out.println("Sorted Stack After pop is : " + sortedStack);
}
public Stack <Integer> Sorting(Stack<Integer> mainStack) {
//إنشاء الكومة التانية باسم مؤقت
Stack <Integer> temporary = new Stack();
// حلقة تكرارية تنتهى عندم يكون المكدس فارغ
while (!mainStack.isEmpty()) {
// سحب العنصر الاول فى المكدس طوال حلقة التكرار
int X = mainStack.pop();
// كرر طالما المكدس المؤقت غير فارغ وأعلى المكدس المؤقت أكبر من أكس
while (! temporary.isEmpty() && temporary.peek() > X) {
// اسحب العناصر من المكدس المؤقت واضفه إلى المكدس الأصلي
mainStack.push( temporary.pop());
}
temporary.push(X);
}
return temporary;
}
}
الاخراج :
stack befor pop: [2, 1, 5, 3, 4]
stack After pop: [2, 1, 5, 3]
Sorted Stack After pop is : [1, 2, 3, 5]
stack After pop: [2, 1, 5, 3]
Sorted Stack After pop is : [1, 2, 3, 5]
- في الإثنين يناير 06, 2020 6:20 pm
- ابحث في: أساسيات اللغة Java Basics
- موضوع: التعامل مع فئة المكدس أو الكومة Stack in java
- المساهمات: 0
- مشاهدة: 1237
أمس في 6:10 pm من طرف moslema_r
» افضل شركة رش مبيدات بالرياض
الإثنين أبريل 29, 2024 9:00 pm من طرف moslema_r
» ارخص شركة مكافحة الصراصير بالرياض
الخميس أبريل 25, 2024 8:56 pm من طرف moslema_r
» شركة مكافحة حشرات في راس الخيمة
الخميس أبريل 25, 2024 8:34 pm من طرف moslema_r
» تطبيقIncogniton لإدارة ملفات تعريف متعددة للمتصفح
الأربعاء أبريل 24, 2024 3:51 pm من طرف زاكااا
» افضل شركة مكافحة النمل الابيض بالرياض
الإثنين أبريل 22, 2024 9:41 pm من طرف moslema_r
» Exemplary Сasual Dating - Verified Women
الخميس أبريل 18, 2024 9:18 pm من طرف wdqwd
» رش الدفان بالرياض
الخميس أبريل 18, 2024 7:11 pm من طرف moslema_r
» شركة تنظيف خزانات الشارقة
الخميس أبريل 18, 2024 6:57 pm من طرف moslema_r
» شركة مكافحة الفئران بالرياض
الإثنين أبريل 15, 2024 8:23 pm من طرف moslema_r