Ali Ahmed55 نشر 15 مارس أرسل تقرير نشر 15 مارس (معدل) السلام عليكم هو انا ازي اقدر اي انفيذ الPriority Queues في Python ؟ وليه تنفذ هياكل البيانات اسهل في باثيون عني اي لغه برمجه تاني ؟ تم التعديل في 15 مارس بواسطة Ali Ahmed55 3 اقتباس
0 Chihab Hedidi نشر 15 مارس أرسل تقرير نشر 15 مارس يمكنك تنفيذ Priority Queue في Python باستخدام queue.PriorityQueue من المكتبة القياسية أو باستخدام قائمة قائمة الأولويات heap مع heapq، حيث يتم ترتيب العناصر تلقائيا حسب الأولوية عند الإدراج ، فمثلا باستخدام heapq، يمكنك إدراج العناصر كأزواج ليتم فرزها بناءً على الأولوية تلقائيا. ما يجعل تنفيذ هياكل البيانات أسهل في Python مقارنة بلغات أخرى هو أن Python توفر مكتبات مدمجة مثل collections و heapq و queue التي تبسط العمل مع القوائم، والـ heaps دون الحاجة إلى إعادة تنفيذها من الصفر، كما أن Python تعتمد على تركيب بسيط ومرن يجعل كتابة الكود وتنفيذ الهياكل أسرع وأوضح مقارنة بلغات أخرى مثل C++ أو Java، حيث تتطلب هذه اللغات تعريفات صريحة للأنواع وكتابة كود أكثر تعقيدًا لإدارة الذاكرة، يمكنك كتابة الكود بهذا الشكل: import heapq pq = [] heapq.heappush(pq, (1, "Task A")) # أولوية 1 heapq.heappush(pq, (3, "Task C")) # أولوية 3 heapq.heappush(pq, (2, "Task B")) # أولوية 2 while pq: print(heapq.heappop(pq)) # يسترجع العناصر حسب الأولوية 1 اقتباس
0 محمد عاطف17 نشر 15 مارس أرسل تقرير نشر 15 مارس في Python يمكنك تنفيذ Priority Queue باستخدام عدة طرق أولا بإستخدام heapq وهي الطريقة الأكثر إستخدام حيث يستخدم heapq بنية Min-Heap افتراضيا : import heapq # إنشاء قائمة انتظار ذات أولوية pq = [] # إدراج عناصر مع تحديد الأولوية (الأولوية الأقل تُخدم أولًا) heapq.heappush(pq, (1, "Task A")) # الأولوية 1 (أعلى أولوية) heapq.heappush(pq, (3, "Task C")) # الأولوية 3 heapq.heappush(pq, (2, "Task B")) # الأولوية 2 # إخراج العناصر حسب الأولوية while pq: priority, task = heapq.heappop(pq) print(f"Processing: {task} (Priority: {priority})") الطريقة الثانية إذا كنت تعمل من خلال Threading يمكنك استخدام queue.PriorityQueue : from queue import PriorityQueue pq = PriorityQueue() # إدراج المهام مع تحديد الأولويات pq.put((1, "Task A")) pq.put((3, "Task C")) pq.put((2, "Task B")) # إخراج المهام حسب الأولوية while not pq.empty(): priority, task = pq.get() print(f"Processing: {task} (Priority: {priority})") 1 اقتباس
0 عبدالباسط ابراهيم نشر 15 مارس أرسل تقرير نشر 15 مارس وعليكم السلام ورحمة الله وبركاته, ويعد تنفيذ قوائم الأولوية في بايثون عملية بسيطة بفضل مكتبة heapq التي توفر أدوات فعالة وسهلة الاستخدام كم اتم التوضيح في التعليقات السابقة . و يمكن أيضاً بناء قائمة أولوية باستخدام قائمة مرتبة أو شجرة ثنائية، لكن هذا الخيار أكثر تعقيدًا وأقل كفاءة من استخدام heapq. يتميز تنفيذ هياكل البيانات في بايثون بالسهولة مقارنةً بلغات أخرى مثل C أو C++ أو Java، وذلك بسبب أن بايثون تتمتع بصياغة بسيطة وواضحة، مما يُسهل كتابة الخوارزميات وفهمها دون التورط في تعقيدات غير ضرورية. وتتولى بايثون إدارة الذاكرة تلقائيًا مما يُعفي المبرمج من التعامل مع تخصيص الذاكرة وتحريرها يدويًا، كما هو مطلوب في لغات مثل C++. وذلك بجانب توفر مكتبات جاهزة مثل heapq وcollections وqueue، تتيح تنفيذ هياكل البيانات بسرعة دون الحاجة إلى بنائها من الصفر. والعديد من المميزات الأخرى التي تتمتع بها بايثون من غالبية اللغات عالية المستوى 1 اقتباس
0 Ali Ahmed55 نشر 15 مارس الكاتب أرسل تقرير نشر 15 مارس الف شكراا جدا لحضرتكم جزاكم الله كل خير اقتباس
السؤال
Ali Ahmed55
السلام عليكم
هو انا ازي اقدر اي انفيذ الPriority Queues في Python ؟
وليه تنفذ هياكل البيانات اسهل في باثيون عني اي لغه برمجه تاني ؟
تم التعديل في بواسطة Ali Ahmed554 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.