انا شفت تقريبا كل كورسات الداتا استركشر بصراحة انت في حتة تانية خالص ماشاء الله عليك اسلوب سهل وجميل جدا راي المتواضع لو عملت اكثر من كورس انت هتكون رقم واحد في في وقت قليل جدا بالتوفيق ياباشمهندس
مظبوط العنصر بيفضل فعلاً في الميموري بس مجازاً نقدر نقول انه اتمسح لانه خرج برا نطاق الـstack حتي لو حبيت بعد كده تعمل push فهيبدء يضيف العنصر الجديد مكانه او بمعني تاني هيغير قيمته للقيمة الجديدة ويكأنه مش موجود من الأساس في حالات تقدر تمسح بيها العنصر أصلا بأنك تخلي قيمته بصفر, بس الطريقة ديه تعتبر خطوة زيادة ملهاش لازمة علي الإطلاق
علشان نقدر نستعمله بعد كده في باقي الكود كمرجع مش اكتر ويكون اسهل لو حبيت تعدله ولكن تقدر تكتب الرقم علطول بس لو غيرته هتحتاج تغيره بعد كده في باقي الكود
@@libyabasher3874 ههههههههههه ياخي وانا اللي كنت ساخط عليهم اما بيشرحوا ربع المقرر بس ربنا ينتقم منهم. اهو كويس بيشرحو حاجه😂😂 ربنا ينتقم منهم ياخي والله 4 سنين من العمر على ورقة واسم في البطاقة مهندس برمجيات هههههههه ولا في شرح ولا في برمجة اصلا😂😂
@@m7mdabohashem 😂😂 وللاسف ده السبب يلي خلا العالم يوصفنا ب شعوب العالم التالت. لو كل واحد يتقي ربنا ويعمل الشي يلي مطلوب منه على اكمل وجه ..كان من زمااااان وصلنا القمر وصنعنا السفن والسيارات والطائرات ... دكاترة واساتذه على الورق بس بيجي الجامعه مش عاوز يعمل حاجه غير انو يجلس على الكرسي ويقرى الشيت وكأنها مادة لغة عربية مش تراكيب بيانات ولا لغة جافا عاوزه شرح وتمارين وجهد كبير
الـ data structure تعتبر مفهوم او فكرة بتتعلمها بتوسعلك مداركك وبتفهمك اللغة وطريقة استخدامها اكتر وبالتالي انت محتاج انك تطبق المفاهيم والافكار دي في حاجه بشكل عملي وعلشان تعمل كده هتعمل برنامج له فكره تقدر من خلالها تطبق الافكار الي اتعلمتها باستخدام اساسيات اللغة من ضمن الافكار مثلا علي الـ stack لعبة اسمها Towers Of Hanoi وبالنسبة مثلاً للـ queue فممكن تعمل اي نظام حجز زي نظام عيادة مثلاً اهم حاجه انك تطبق الي اتعلمته في برنامج حقيقي مش مجرد تطبيق مباشر
دلوقتى ال top بعد انتهاء ال function الواحد اللى اضفته عليها جوة ال function بيروح وبترجع ال function اللى بعدها تاخد قيمة ال top من ال-1 الاولانية ..... ولما عرفت ال top على انها static فى الاول بردو الموضوع فضل زى ما هو الحل ولا انا اللى مش عارف انفذ
المفترض انك بتعرف الـ top كـ global variable بحيث كل الـ functions تقدر تعدل عليه ويفضل محتفظ بقيمته بعد انتهاء تنفيذ الـ function ركز مع الفيديو وهيظبط معاك أكيد
ال global variable ملوش علاقه بال function لانه متعرف براها اصلا، ومش هتفرق انت عملتله call by value او call by reference هي بتفرق بس لو انت باعته لل function ك parameter اما لو global variable فبتعدل عليه علطول وبيفضل محتفظ بالقيمه.
انا بالفعل قمت بتعريفهم علي انهم دوال وليسوا متغيرات وبالنسبة لسؤالك الثاني، فالدالة لا تقوم بطباعة القيمة بل تقوم بارجاعها وبالتالي نحتاج ان نطبع القيمة التي تقوم بارجاعها اولا كي تظهر لنا القيمة
الreturn هو امر يأتي بعده في الأغلب قيمة وهو يقوم بإرجاع هذة القيمة عند استدعاء الدالة وإذا لم ياتي بعده اي قيمه فهو يكون بمثابة الbreak في الloop فيقوم بايقاف عمل الداله
بش مهندس انا باحاول اجرب الكود بالضبط بيطلعلى بدل ما يطبع العناصر كلها بيطبعها باصفار ليه مع أنه نفس الكود بالضبط ونفس العناصر بالضبط وفاهمه كل خطوه وبيطبعلى اصفار ليه ؟
Display بتعرض العناصر بنفس ترتيب خروجهم ولكن مفيش حاجه بتتغير فعليا ، هي مجرد بتعرض بس Pop بترجع العنصر الي عليه الدور انه يخرج لكن الفرق انها بتخرجه فعلا لانها بتعدل علي قيمة الtop
لو حابب تفهم الجزئية ديه كويس شوف الفيديو الي قبل ده شرحت فيه الstack بشكل نظري وحاول برضو تشوف الفيديو ده كمان مرة لاني شرحت الجزئية ديه وتابع الجزء الي بيظهر جنب الكود وركز فيه ولو في اي سؤال تاني او جزئية مش مفهومة ممكن اوضحهالك
فهمت يعني ال function اللي اسمها pop هي وظيفتها انها تخذف العنصر اللي ال top بيشاور عليه و لو فضلت اعمل pop كذا مرة ال top ينقص واحد و تقوم ال function تحذف القيمة الجديدة اللي ال top بيشاور عليها .....صح كدة ؟
لما يابشمهندس أنا مقدرش أتعمل مع ال elements of array اللي جوه ال stack غير مع ال top element ف ازاي هعرف أعمله display واحرك ال top اللي كان بيشاور ومستني إنهم يتعرضوا فقط وميتمسحهوش there is no logic in this tbh
السلام عليكم, اعتقد انت عندك لبس كبير في فهم فكرة عمل الـ stack وانصحك وبشده في البدايه تتفرج علي اول فيديو عملته عن الـ stack كنت شرحت فيه الفكره العامه وفكرة كل داله علي حدى. رابط الفيديو : ua-cam.com/video/rYMuP7e-8CM/v-deo.html وكرد سريع علي سؤالك فانا فعلاً بتعامل مع العناصر من خلال الـ top لكن في حالة العرض ولو ركزت في الفيديو انا مش بحرك الـ top نفسه وانما بيكون في loop variable (i) قيمته الابتدائيه بتكون نفس قيمة الـ top وهو الي بيدء يتناقص في كل loop بحيث اقدر اعرض العناصر المتواجدة في الـ stack بدون ما يتم حذفها.
فاعل خير : الكود مرضيش يشتغل عندي بسبب ال pop & peek فده بسبب ان القيمة المخرجة منهم (int) فبالتالي انت لازم تخرج قيمة من ال funtion فلو نفزت الشرط if حينها مش هيخرج قيمة int لكن هتخرج بس رسالة طباعة النص اللي انت كتبوا ..... المشكلة هتظهرلك في ال terminal ب 'control reaches end of non-void function' بالاخير حل المشكلة بكل بساطة انك تضع بعد جملة طباعة النص اللي في if condation 'return false' في ال pop , peek هاد الكود المصحح int pop(){ if(top==-1){cout
الكلام ده المفروض مش مظبوط يا بشمهندس أو فيه حاجة غلط ﻷن المفروض ال stack أول ما يتعمله display ال top فضل يحصله decrement لحد ما وصل لل empty condition ف من المفترض إنه بعد أول display ال stack يفضى كاملاً وتدخل فيه عناصر جديد عشان تقدر تعمل pop لو حاب تعمل .. ال display في حالة ال stack based on array بتبقا عاملة زي ال delete All كده بالظبط
الفكره ببساطه تكمن في فهم فكر دالة الـ display ووظيفتها 1- الـ display ما هي الا داله مهمتها فقط عرض العناصر بترتيبهم الحالي (بنفس الترتيب الي المفترض يخرجوا بيه) 2- الـ top مش حصل ليه decrement ولكن احنا في البدايه عرفنا loop variable قيمته الابتدائية كانت مساويه لقيمة الـ top, بعد كده الـ loop variable هو الي بيتعمله decrement في كل loop وبالتالي فالـ top قيمته لم تتأثر بالـ display وبالتالي العناصر لم يتم حذفها من الاساس ولم نصل اصلاً للـ empty condition. والـ display كما وضحت سابقاً دورها فقط عرص العناصر دون حذف اي عنصر او الاخلال بترتيب العناصر
تمام ما انا شوفت الفيديو اللي قبله وحضرتك قولت ان ال stack زيه زي ال box وانا بحط جواه العناصر انا مش هقدر اوصل لل لل element ال هو top -1 غير لما اعمل pop ل top واعمل decrement لل top وهكذا، لكن لما انا عرفت اعمل access لكل ال elements واعملهم عرض وهما مكانهم زي ما هما يبقا كدة فرقت ف ايه ال stack لازم ع الاقل يبقا في array تاني انقل فيها ال elements واعرضهم لكن مينفعش اوصل لل element اللي ف index 0 ف stack!
@@megacodeyt طب ما ايه المانع انه كنت عملت function ال peak يقرالي كل العناصر بقا مش بس عنصر ال top بس!؟ انا بصراحة شايف الكلام متناقض كشرح لفكرة ال stack والصندوق وحتى قراءة ال elements مرفوضة بالنسبالي لان الوصول ليها لا يمكن الا لل top element وعشان اقرا اللي بعده decrement وبرضو محذفش العناصر هيكون عند طريق وضع اللي بعمله pop في new stack لكن اللي حصل ده بالنسبالي هو كسر لل logic نفسه اللي اتشرح ف الفيديو اللي حضرتك بعت اللينك بتاعه وشكراً لحسن استماعك
العفو ,انا متفهم جداً شعور اللخبطه الي عندك بسبب ما تسميه بتناقض الافكاربس خليني اوضحلك عدة نقاط سريعه في البداية الـ stack فكرته الاساسيه جايه من اسمه وهو ان في عناصر فوق بعض زي ما وضحت في الفيديو الاول وان التعامل معاه بيكون من جهه واحده فقط بمعني اقدر اخرج او ادخل العناصر فيه من جهة واحدة بس ده بينطبق في حالة الـ push و الـ pop في حالة الـ peek بيكون بس مجرد داله علشان اعرف فقط ايه العنصر الي عليه الدور في الخروج بحيث ممكن استخدمه في عمليات حسابية او validation مثلاً احدد اذا كان فعلاً مسموح له بالخروج اولا ولكن انا بس بعرف العنصر الي عليه الدور فقط ولكن مش بخرجه بشكل فعلي في حالة الـ display بقي تقدر تعتبر انه عباره عن ان انا عايز اعرف بس ترتيب العناصر المتواجده عندي مش اكتر يعني في الـ display انا بس عايز اعرف العناصر الي عندي ولو هيخرجوا ترتيبهم هيكون ازاي نقدر نعتبر ان ده اشبه بالـ box الي فيه الكتب مثلاً بس مصنوع من الزجاج بحيث اقدر اشوف الي جواه لكن مقدرش اخرجهم فعلياً الا من الفتحه المخصصه لده بترتيب دخولهم طبعاً ده مش افضل تشبيه ولكن نقدر نعتبر ان ده الي بيحصل بشكل فعلي في الـ dispaly لان كل الي بعمله ان انا بشوف العناصر الي موجوده بدون ما اخرج اي عنصر في النهاية فكرة الـ stack بشكل عام تضمن عمليتين اساسيتين وهما الـ push والـ pop فقط واي عمليات تانيه زي الـ peek او الـ display فهما عمليات مساعده مش اكتر تقدر تستخدمهم علشان يساعدوك في البرنامج بتاعك فقط لكن مش لهم تأثير علي الـ stack وعناصره. انصحك وبشده وعلشان تقلل اللخبطه الي عندك انك تقرأ عن الـ stack من كتب اكاديمية وأنك تطبق الكود بنفسك ده هيساعدك كبير لفهم الموضوع بشكل افضل.
@@megacodeyt شكراً لشرحك المفيد واهتمامك .. أنا فعلاً بذاكر وكتبت الكود ولقيته مجابليش نفس النواتج .. بعد اول display فضل يقولي stack is empty سواء بعد تجربة خطوة ال pop او ال peak
انا شفت تقريبا كل كورسات الداتا استركشر بصراحة انت في حتة تانية خالص ماشاء الله عليك اسلوب سهل وجميل جدا راي المتواضع لو عملت اكثر من كورس انت هتكون رقم واحد في في وقت قليل جدا بالتوفيق ياباشمهندس
شكرا ليك
شهادة افتخر بها
وان شاء الله في حجات بيتم التحضير لها قريب بإذن الله
2:20 Define array size
4:34 Push Funtion
7:17 Pop Funtion
11:11 Peek Function
13:32 Display Function
16:41 Testing and Summary
افضل حد حرفيا
مش عارفه اوصف الشرح بصراحة فوق الممتاز
جزاك الله خير الجزاء ..حرفيا شفت اكتر من ١٠ فيديوهات وماكنت افهم بس الحمدلله هلاء لحتى فهمت 🌸
بسم الله ماشاء الله أنا فخووووووووووووووورة بيك جدا
الله يبارك عليك شرح واضح و بارك الله فيك و ربي يكون ف عونك
لو فيه نفس الفيديوهات دى بس لل c تبقي عظمه ي هندسة❤❤
انصحكم تتابعوه شرح ماشاء الله افضل من الدكتره
ما شاء الله ربنا يزيدك علم وفهم وينفعك بعلمك ... رائع وفقك الله لكل خير
ما شاء الله شرح ممتاز مش عارف ليه في الجامعة عندنا بيستخدموا ال stack with pointer مع ان دا اسهل واحسن
شكرا ليك علي مجهودك
اكاد من فرط الجمال اذوب✌💙
عاش جدا ي هندسة
ماشاء الله عليك طريقه جميله لشرح بتمنى انك تستمر
ماشاء الله شرح مبسط ومفهوم وواقعي مشكور
أكيد الفيديو عجبني وشرحك تحفه فوق الخيال
فنان افضل شرح بلحياة
عالمي بجد ربنا يوفقك
فخم فخم فخم فخامه❤
الله يبارك في حضرتك ى بشمهندس
احلي شرح ع اليوتيوب
ربنا يباركلك❤
اهنيك انت افضل من المدرس تبعنا
عظيم جداً تسلم ايدك ❤❤❤❤
انت فديوهاتك جميله اوى
جزاك الله خيرا
متشكرين جدا ربنا يوفقك ويزيدك من فضله
Amazing way of teach,🤩
شكرا لحضرتك .. اتمني لك كل التوففيق
الله يباركلك يا هندسة
شرحك ممتاز شكرا ليك 💜🤝🏼🤝🏼💜🇱🇾🇱🇾
Excellent explanation and very simple God bless you continue engineer
جزاك الله خيرًا ♥️
بجد شرح حضرتك كويس جدا
شكرا لحضرتك علي مجهودك واتمني ان حضرتك ترجع تنزل فديوهات شرح تانية
والله العظيم عالمي
بارك الله فيك وجعله الله في ميزان حسناتك 💚
برنس كبير اوي اوي والله ♥️⚡
عظمة بصراحة ♥️🔥
انت عظيم بجد
ربنا يوفقك يا هندسه
شرح سهل ومفهوم عاشت ايدك
شكرا شكر اشكرا شكرا شكرا من هنا لحد طنطا ♥♥♥♥♥♥♥♥♥♥♥♥
best video about stack, thanks alot ♥👌
ماشاء الله عليك والله ماقصرتش في حاجه .
عاوزين algorithms بعد اذنك ربنا يباركلك
شكرا وبارك الله فيك 🤍🤍
بارك الله فيك
جزاك الله خيرا
thanks alot best video everrr
ايه الجمال ده
الله يجزيك الف خير .. شكررا
شرح رااائع شكراااا
يا ريت لو في شرح بالبايثون شرحك رائع يعطيك العافيه
AMAZING, as always
يسطاااااا كمل شرح
شرحك جامد
الشرح بيرفكت 🥶
شكرا من القلب
شكرا من كل قلبي✔💯
الله يسعدك
شكرا جزيلا
21:47 أيش الشرح الخرافي ذا
ممتاز جدا بس ياريت تشرحه كمان ب java
انا مش فاهم هو بيرجع قيمة اللي اتحذف ليه انا فهمت انه بيقلل ال توب ١ عشان يبقي التوب الجديد
تقريبا انا مش فاهم دالة ال return بتعمل ايه
عاوزه اخد كورس مع حضرتك
هو لما بنشغل الدالة pop هي بتخلي top يشاور علي العنصر اللي بعد كدا بس هو بيغضل في ال memory ?
مظبوط العنصر بيفضل فعلاً في الميموري بس مجازاً نقدر نقول انه اتمسح لانه خرج برا نطاق الـstack
حتي لو حبيت بعد كده تعمل push فهيبدء يضيف العنصر الجديد مكانه او بمعني تاني هيغير قيمته للقيمة الجديدة ويكأنه مش موجود من الأساس
في حالات تقدر تمسح بيها العنصر أصلا بأنك تخلي قيمته بصفر, بس الطريقة ديه تعتبر خطوة زيادة ملهاش لازمة علي الإطلاق
شرح رائع بجد ربنا يوفقك ♥ بس كان عندي سؤال هو احنا ليه استعملنا ماكرو مدخلناش الرقم عادي؟
علشان نقدر نستعمله بعد كده في باقي الكود كمرجع مش اكتر ويكون اسهل لو حبيت تعدله
ولكن تقدر تكتب الرقم علطول بس لو غيرته هتحتاج تغيره بعد كده في باقي الكود
@@megacodeyt طب هو مينفعش اخلي اليوزر هو اللي يدخل الحجم؟
ينفع بس الـ array مينفعش تعملها بعد كده تحدد قيمتها الا إذا عرفتها كـ pointer الاول بعد كده تخلي البوينتر يشاور علي array جديدة.
@@megacodeyt تمام شكرا جدا
العفو، الشكر لله
المحتوى اسطوري وجوده الانميشن والصوت اسطوريه احسن من دكاتره الجامعه المحنكين اللي عندنا بيسجلو بمايك اللابتوب وحاطينه في البلعوم وبيتكلموا وبيصورو ببرامج تصوير شاشه نسخه تجريبيه وحالتهم كرب هههههههه😂
اهنيك والله يا مبدع ليك مستقبل باهر انشاءالله استمررررررررررر😊❤❤😍
لو تشوف دكاترة الجامعه عندنا يسطا حاتشكر ربنا انا عندكم دكاترة وتشرح وتبدل ف جهد اصلا
احنى ما بيجعوش راسهم اصلا يعطيك المنهج ويقولك توكل على ربنا شوف من يشرحلك
@@libyabasher3874 ههههههههههه ياخي وانا اللي كنت ساخط عليهم اما بيشرحوا ربع المقرر بس ربنا ينتقم منهم. اهو كويس بيشرحو حاجه😂😂 ربنا ينتقم منهم ياخي والله 4 سنين من العمر على ورقة واسم في البطاقة مهندس برمجيات هههههههه ولا في شرح ولا في برمجة اصلا😂😂
@@m7mdabohashem 😂😂 وللاسف ده السبب يلي خلا العالم يوصفنا ب شعوب العالم التالت.
لو كل واحد يتقي ربنا ويعمل الشي يلي مطلوب منه على اكمل وجه ..كان من زمااااان
وصلنا القمر وصنعنا السفن والسيارات والطائرات ...
دكاترة واساتذه على الورق بس بيجي الجامعه مش عاوز يعمل حاجه غير انو يجلس على الكرسي ويقرى الشيت وكأنها مادة لغة عربية مش تراكيب بيانات ولا لغة جافا عاوزه شرح وتمارين وجهد كبير
@@libyabasher3874 الله يهديهم بس ما بيدنا شيء غير نحاول نطور نفسنا بنفسنا من اليوتيوب والهندوس عباد البقر
بعد الـ POP العرض حيكون 10 و 5 ، ليس 10 و 15 ، هل صحيح ؟
يادكتور الو اشتي ااوجد اعلا قيمة
او ابحث علا عنصر معين
كيف افعل
يا هندسة لما اجي اعرف ال size واحطها في الاراي بيديني ايرور مش عارف ليه
يبشمهندس لو سمحت ازاي ااقدر اربط الbasicالي اتعلمتها فسنه اولي مع data structureبتاعت نفس اللغه
ازاي اربطهم ببعض؟
الـ data structure تعتبر مفهوم او فكرة بتتعلمها بتوسعلك مداركك وبتفهمك اللغة وطريقة استخدامها اكتر
وبالتالي انت محتاج انك تطبق المفاهيم والافكار دي في حاجه بشكل عملي وعلشان تعمل كده هتعمل برنامج له فكره تقدر من خلالها تطبق الافكار الي اتعلمتها باستخدام اساسيات اللغة
من ضمن الافكار مثلا علي الـ stack لعبة اسمها Towers Of Hanoi
وبالنسبة مثلاً للـ queue فممكن تعمل اي نظام حجز زي نظام عيادة مثلاً
اهم حاجه انك تطبق الي اتعلمته في برنامج حقيقي مش مجرد تطبيق مباشر
@@megacodeyt تمام يبشمهندس ممكن افكار اطبقها تاني او موقع اجيب من عليه
وحضرتك هتشرح Data Structure بس ولا Algorithms كمان ؟!
هو في نيه ان شاء الله لشرح algorithms بس بعد الكورس ده ما يخلص الاول
هذا كود ثابت هل يتغير
💙💛
دلوقتى ال top بعد انتهاء ال function الواحد اللى اضفته عليها جوة ال function بيروح وبترجع ال function اللى بعدها تاخد قيمة ال top من ال-1 الاولانية ..... ولما عرفت ال top على انها static فى الاول بردو الموضوع فضل زى ما هو الحل
ولا انا اللى مش عارف انفذ
المفترض انك بتعرف الـ top كـ global variable
بحيث كل الـ functions تقدر تعدل عليه ويفضل محتفظ بقيمته بعد انتهاء تنفيذ الـ function
ركز مع الفيديو وهيظبط معاك أكيد
طيب ازاى هيفضل محتفظ بقيمته وال function بتعمله call by value حتى وهو global variable
ال global variable ملوش علاقه بال function لانه متعرف براها اصلا، ومش هتفرق انت عملتله call by value او call by reference
هي بتفرق بس لو انت باعته لل function ك parameter اما لو global variable فبتعدل عليه علطول وبيفضل محتفظ بالقيمه.
السلسلة هتخلص امتى يبشمهندس ؟
للاسف مفيش ميعاد محدد بس انا بحاول اعمل الفيديوهات في كل فرصة ممكنة.
شكرا عالشرح لكن في خطأ التابع() pop يعيد قيمة لايجوز استدعائه باسمه فقط.. أين ذهبت القيمة المعادة؟؟؟؟؟؟؟؟؟؟
هل في معك شرح التحويل من infix to perfix عن طريق الاستاك ارسلي رابط الفيديو
ممكن اعرف ويش هو البرنامج اللذي تستخدمه بكتابة الاكواد؟
لان انا استخدم برنامج code blocks هو ثقيل جدا ودايما بيعطل عليا؟
بستخدم visual studio
لم يتنفذ عندي ال pop وين الخطأ ؟
فين الكود
راجع الكود جيدا
يبشهندس هو ليه الpush عملتهاvoid وباقي الدوال مش void
الـ push و الـ display من نوع void لانهم مش بيرجعوا قيمة
اما الـ pop والـ peek من نوع int لانهم بيرجعوا قيمة integer
ما اسم البرنامج الي تستخدمة بلفديو
visual studio
كيف اسوي اثنين stack و اقارن بين اعلى قيمه فيهم؟
في منهج الجامعة موجود push , pop , empty , reset , full
انا في القناة بشرح بدون الالتزام بمنهج محدد لاحد الجامعات
لماذا عرفت pop و peek ع أنهما متغير وليس دوال ولماذا أعمل ل peek دالة cout لانه من دون cout لا تظهر لماذا
انا بالفعل قمت بتعريفهم علي انهم دوال وليسوا متغيرات
وبالنسبة لسؤالك الثاني، فالدالة لا تقوم بطباعة القيمة بل تقوم بارجاعها وبالتالي نحتاج ان نطبع القيمة التي تقوم بارجاعها اولا كي تظهر لنا القيمة
بس ليه ماشرحت is empty والis Full
يبش مهندس!!
السلام عليكم ممكن تفهمني ماهو عمل او فائدة Rutren
الreturn هو امر يأتي بعده في الأغلب قيمة وهو يقوم بإرجاع هذة القيمة عند استدعاء الدالة
وإذا لم ياتي بعده اي قيمه فهو يكون بمثابة الbreak في الloop فيقوم بايقاف عمل الداله
بش مهندس انا باحاول اجرب الكود بالضبط بيطلعلى بدل ما يطبع العناصر كلها بيطبعها باصفار ليه مع أنه نفس الكود بالضبط ونفس العناصر بالضبط وفاهمه كل خطوه وبيطبعلى اصفار ليه ؟
أولاً المفروض الصح انه أول display تطلع النواتج بس بعد كده هتبقا ال stack empty ليه؟ عشان ال display بت act like pop بالظبط لكن ب for loop
ممكن لينك الكود اللي كتبته يا بشمهندس لو علي github
هو انا مش فاهم اوي اية الفرق بين ال function اللي اسمها display و ال function اللي اسمها pop
Display
بتعرض العناصر بنفس ترتيب خروجهم ولكن مفيش حاجه بتتغير فعليا ، هي مجرد بتعرض بس
Pop
بترجع العنصر الي عليه الدور انه يخرج لكن الفرق انها بتخرجه فعلا لانها بتعدل علي قيمة الtop
لو حابب تفهم الجزئية ديه كويس شوف الفيديو الي قبل ده
شرحت فيه الstack بشكل نظري
وحاول برضو تشوف الفيديو ده كمان مرة لاني شرحت الجزئية ديه وتابع الجزء الي بيظهر جنب الكود وركز فيه
ولو في اي سؤال تاني او جزئية مش مفهومة ممكن اوضحهالك
فهمت يعني ال function اللي اسمها pop هي وظيفتها انها تخذف العنصر اللي ال top بيشاور عليه و لو فضلت اعمل pop كذا مرة ال top ينقص واحد و تقوم ال function تحذف القيمة الجديدة اللي ال top بيشاور عليها .....صح كدة ؟
اه كده صح
الpop وظيفتها تحذف العنصر الي بيشاور عليه الtop
بعد كده تنقص الtop بواحد
لما يابشمهندس أنا مقدرش أتعمل مع ال elements of array اللي جوه ال stack غير مع ال top element ف ازاي هعرف أعمله display واحرك ال top اللي كان بيشاور ومستني إنهم يتعرضوا فقط وميتمسحهوش
there is no logic in this tbh
السلام عليكم,
اعتقد انت عندك لبس كبير في فهم فكرة عمل الـ stack
وانصحك وبشده في البدايه تتفرج علي اول فيديو عملته عن الـ stack كنت شرحت فيه الفكره العامه وفكرة كل داله علي حدى.
رابط الفيديو : ua-cam.com/video/rYMuP7e-8CM/v-deo.html
وكرد سريع علي سؤالك فانا فعلاً بتعامل مع العناصر من خلال الـ top
لكن في حالة العرض ولو ركزت في الفيديو انا مش بحرك الـ top نفسه وانما بيكون في loop variable (i) قيمته الابتدائيه بتكون نفس قيمة الـ top وهو الي بيدء يتناقص في كل loop بحيث اقدر اعرض العناصر المتواجدة في الـ stack بدون ما يتم حذفها.
بعمل نفس الشغل بس باجي اعمل run كلو بيبقي اصفار مش عارف ليه؟؟
لو اصفار فغالبا انت مغيرتش القيمه اصلا فبيعرض القيمه الافتراضيه للarray وهي الصفر
write c++ program to remove
duplicates from stack
لو ممكن حل هذا السؤال
اشرح ستاک في جافا😔
فاعل خير : الكود مرضيش يشتغل عندي بسبب ال pop & peek فده بسبب ان القيمة المخرجة منهم (int) فبالتالي انت لازم تخرج قيمة من ال funtion فلو نفزت الشرط if حينها مش هيخرج قيمة int لكن هتخرج بس رسالة طباعة النص اللي انت كتبوا ..... المشكلة هتظهرلك في ال terminal ب
'control reaches end of non-void function'
بالاخير حل المشكلة بكل بساطة انك تضع بعد جملة طباعة النص اللي في if condation 'return false' في ال pop , peek
هاد الكود المصحح
int pop(){
if(top==-1){cout
code please??
احتاج اتواصل معاك خاص بشكل ضروري جداً ارجو الاستجابه
تقدر تتواصل من خلال حسابتنا علي وسائل التواصل الاجتماعي المختلفة
الكلام ده المفروض مش مظبوط يا بشمهندس أو فيه حاجة غلط ﻷن المفروض ال stack أول ما يتعمله display ال top فضل يحصله decrement لحد ما وصل لل empty condition ف من المفترض إنه بعد أول display ال stack يفضى كاملاً وتدخل فيه عناصر جديد عشان تقدر تعمل pop لو حاب تعمل .. ال display في حالة ال stack based on array بتبقا عاملة زي ال delete All كده بالظبط
الفكره ببساطه تكمن في فهم فكر دالة الـ display ووظيفتها
1- الـ display ما هي الا داله مهمتها فقط عرض العناصر بترتيبهم الحالي (بنفس الترتيب الي المفترض يخرجوا بيه)
2- الـ top مش حصل ليه decrement ولكن احنا في البدايه عرفنا loop variable قيمته الابتدائية كانت مساويه لقيمة الـ top, بعد كده الـ loop variable هو الي بيتعمله decrement في كل loop
وبالتالي فالـ top قيمته لم تتأثر بالـ display وبالتالي العناصر لم يتم حذفها من الاساس ولم نصل اصلاً للـ empty condition.
والـ display كما وضحت سابقاً دورها فقط عرص العناصر دون حذف اي عنصر او الاخلال بترتيب العناصر
تمام ما انا شوفت الفيديو اللي قبله وحضرتك قولت ان ال stack زيه زي ال box وانا بحط جواه العناصر انا مش هقدر اوصل لل لل element ال هو top -1 غير لما اعمل pop ل top واعمل decrement لل top وهكذا، لكن لما انا عرفت اعمل access لكل ال elements واعملهم عرض وهما مكانهم زي ما هما يبقا كدة فرقت ف ايه ال stack لازم ع الاقل يبقا في array تاني انقل فيها ال elements واعرضهم لكن مينفعش اوصل لل element اللي ف index 0 ف stack!
@@megacodeyt طب ما ايه المانع انه كنت عملت function ال peak يقرالي كل العناصر بقا مش بس عنصر ال top بس!؟ انا بصراحة شايف الكلام متناقض كشرح لفكرة ال stack والصندوق وحتى قراءة ال elements مرفوضة بالنسبالي لان الوصول ليها لا يمكن الا لل top element وعشان اقرا اللي بعده decrement وبرضو محذفش العناصر هيكون عند طريق وضع اللي بعمله pop في new stack لكن اللي حصل ده بالنسبالي هو كسر لل logic نفسه اللي اتشرح ف الفيديو اللي حضرتك بعت اللينك بتاعه وشكراً لحسن استماعك
العفو ,انا متفهم جداً شعور اللخبطه الي عندك بسبب ما تسميه بتناقض الافكاربس خليني اوضحلك عدة نقاط سريعه
في البداية الـ stack فكرته الاساسيه جايه من اسمه وهو ان في عناصر فوق بعض زي ما وضحت في الفيديو الاول
وان التعامل معاه بيكون من جهه واحده فقط بمعني اقدر اخرج او ادخل العناصر فيه من جهة واحدة بس
ده بينطبق في حالة الـ push و الـ pop
في حالة الـ peek بيكون بس مجرد داله علشان اعرف فقط ايه العنصر الي عليه الدور في الخروج بحيث ممكن استخدمه في عمليات حسابية او validation مثلاً احدد اذا كان فعلاً مسموح له بالخروج اولا
ولكن انا بس بعرف العنصر الي عليه الدور فقط ولكن مش بخرجه بشكل فعلي
في حالة الـ display بقي تقدر تعتبر انه عباره عن ان انا عايز اعرف بس ترتيب العناصر المتواجده عندي مش اكتر
يعني في الـ display انا بس عايز اعرف العناصر الي عندي ولو هيخرجوا ترتيبهم هيكون ازاي
نقدر نعتبر ان ده اشبه بالـ box الي فيه الكتب مثلاً بس مصنوع من الزجاج بحيث اقدر اشوف الي جواه
لكن مقدرش اخرجهم فعلياً الا من الفتحه المخصصه لده بترتيب دخولهم
طبعاً ده مش افضل تشبيه ولكن نقدر نعتبر ان ده الي بيحصل بشكل فعلي في الـ dispaly لان كل الي بعمله ان انا بشوف العناصر الي موجوده بدون ما اخرج اي عنصر
في النهاية فكرة الـ stack بشكل عام تضمن عمليتين اساسيتين وهما الـ push والـ pop فقط
واي عمليات تانيه زي الـ peek او الـ display فهما عمليات مساعده مش اكتر تقدر تستخدمهم علشان يساعدوك في البرنامج بتاعك فقط لكن مش لهم تأثير علي الـ stack وعناصره.
انصحك وبشده وعلشان تقلل اللخبطه الي عندك انك تقرأ عن الـ stack من كتب اكاديمية وأنك تطبق الكود بنفسك ده هيساعدك كبير لفهم الموضوع بشكل افضل.
@@megacodeyt شكراً لشرحك المفيد واهتمامك .. أنا فعلاً بذاكر وكتبت الكود ولقيته مجابليش نفس النواتج .. بعد اول display فضل يقولي stack is empty سواء بعد تجربة خطوة ال pop او ال peak