Удаление определенных значений из очереди
Здравствуйте, В основном я пишу здесь небольшие вещи, и я реализую очередь с помощью связанного списка, и все находится на своем пике, но есть маленькая вещь, которую я не могу понять, а именно то, что я снимаю очередь, и она работает хорошо, но что, если я хочу, как я также предоставлю количество значений, которые будут удалены !! вот что я сделал !!
Что я уже пробовал:
#include<iostream> #include<cstdlib> using namespace std; struct node{ int info; struct node *next; }; class Queue{ private: node *rear; node *front; public: Queue(); void enqueue(); void dequeue(); void display(); }; Queue::Queue(){ rear = NULL; front = NULL; } void Queue::dequeue(){ node *temp = new node; if(front == NULL){ cout<<"\nQueue is Emtpty\n"; }else{ temp = front; front = front->next; cout<<"The data Dequeued is "<<temp->info; delete temp; } } int main(){ Queue queue; queue.dequeue(); return 0; }
Richard MacCutchan
Что произойдет, если вы хотите удалить элемент, который не находится в начале очереди?
mayashah
возможно ли это ??
Richard MacCutchan
Да, конечно, это возможно. Вам просто нужно заново связать два элемента по обе стороны от того, который будет удален.