شارك المقالة

كود للتطبيق على Queue بإستخدام linked list بلغة c++

 



مرحبا بكم امتابعي موقعنا الاوفياء مرحبا بكم في درس جديد حول كود للتطبيق على Queue بإستخدام linked list بلغة c++ اوبصيغة اخرى  implementation Queue using linked list c++ وهذا التطبيق مهم جدا في مادة هياكل البيانات او الداتا ستراكشر التي تدرس في الجامعات وتحديدا في قسم علوم الحاسب او الحاسبات والمعلومات ولذلك دعوني اشرح لكم ماهو الكيو قبل ان اضع الكود


Queue


Queues او الطابور حيث أن من يأتي أولاً يخرج أولا والمتأخر يقف في آخر الصف وهذا عكس الاستاك (stack) الذي قد سبق وقمت بشرحه في تدوينه سابقه باختصار : اول من يدخل اول من يخرج  وهذا هو شرح الكيو باختصار جدا


ما تحتاجة لكتابة الكود


سوف تحتاج الى برنامج او محرر للكتابة بلغة السي بلس بلس c plus plus وتم وضع مجموعة من البرامج المميزة للكتابة بلغة c++ والتي يستخدمها عدد كبير من المستخدمين في مقالة لدينا وهي بعنوان مجموعة من افضل البرامج والمواقع للكتابة بلغة السي بلس بلس – c plus plus compiler, يمكنك الاطلاع عليها وايضا تحتوي المقالة على مواقع مميزة اونلاين للكتابة والتي استخدمها انا شخصيا, وايضا سوف تحتاج الى ان تكون فاهم في لغة السي بلس بلس وايضا تم شرح كتابة اول كود برمجي لك في حياتك باللغة بكل سهولة والمقالة بعنوان اسهل طريقة لتعلم كتابة اول برنامج لك في لغة c++ بكل سهوله | c++ Tutorial | سي بلس بلس بالعربي, يمكنك الاطلاع عليها لمزيد من المعلومات.


اضغط مرتين لنسح الكود ( تطبيق الكيو )


#include <bits/stdc++.h> 
using namespace std; 
  
// A linked list (LL) node to store a queue entry 
class QNode { 
public: 
    int key; 
    QNode* next; 
}; 
  
// The queue, front stores the front node 
// of LL and rear stores the last node of LL 
class Queue { 
public: 
    QNode *front, *rear; 
}; 
  
// A utility function to create 
// a new linked list node. 
QNode* newNode(int k) 
{ 
    QNode* temp = new QNode(); 
    temp->key = k; 
    temp->next = NULL; 
    return temp; 
} 
  
// A utility function to create an empty queue 
Queue* createQueue() 
{ 
    Queue* q = new Queue(); 
    q->front = q->rear = NULL; 
    return q; 
} 
  
// The function to add a key k to q 
void enQueue(Queue* q, int k) 
{ 
    // Create a new LL node 
    QNode* temp = newNode(k); 
  
    // If queue is empty, then 
    // new node is front and rear both 
    if (q->rear == NULL) { 
        q->front = q->rear = temp; 
        return; 
    } 
  
    // Add the new node at 
    // the end of queue and change rear 
    q->rear->next = temp; 
    q->rear = temp; 
} 
  
// Function to remove 
// a key from given queue q 
QNode* deQueue(Queue* q) 
{ 
    // If queue is empty, return NULL. 
    if (q->front == NULL) 
        return NULL; 
  
    // Store previous front and 
    // move front one node ahead 
    QNode* temp = q->front; 
    delete(temp); 
  
    q->front = q->front->next; 
  
    // If front becomes NULL, then 
    // change rear also as NULL 
    if (q->front == NULL) 
        q->rear = NULL; 
    return temp; 
} 
  
// Driver code 
int main() 
{ 
    Queue* q = createQueue(); 
    enQueue(q, 10); 
    enQueue(q, 20); 
    deQueue(q); 
    deQueue(q); 
    enQueue(q, 30); 
    enQueue(q, 40); 
    enQueue(q, 50); 
    QNode* n = deQueue(q); 
    if (n != NULL) 
        cout << "Dequeued item is " << n->key; 
    return 0; 
} 
  
// This code is contributed by rathbhupendra







شاهد أيضًا
مقالات ذات صلة
صفحة بطاقات الائتمان في Flutter, Flutter Credit Cards Page, Flutter Wallet App, تصميم Wallet Flutter, Hero Animation Flutter, Flutter Credit Card UI
كيفية بناء صفحة بطاقات الائتمان في Flutter | تصميم Credit Cards Page في تطبيق Wallet

شرح بناء صفحة بطاقات الائتمان في تطبيق Flutter (Credit Cards Page) بالتفصيل تُعد صفحة بطاقات…

شرح إنشاء صفحة onBoarding في flutter تظهر في البدايه

 شرح إنشاء صفحة onBoarding في flutter تعد onBoarding واحده من اهم العناصر المستخدمه في معظم…

شرح Dependency Inversion في مبادئ ال Solid لكتابة كود منظم

شرح Dependency Inversion في مبادئ ال Solid لكتابة كود منظم يعد استخدام المبدئ الاخير وهو…

🚫 مانع الإعلانات مفعل

يجب إيقاف مانع الإعلانات لاستكمال تصفح الموقع