Сортировка вставки очереди
Может ли кто-нибудь помочь мне изменить этот вид вставки, чтобы он работал правильно? Реализация очереди находится в заголовочном файле.
#include <iostream> #include "queue.h" using namespace std; void queue::Enqueue(int m_data) { node * temp=new node; temp->value=m_data; temp->next=NULL; if(front==NULL && tail==NULL) { front=tail=temp; return; } else { tail->next=temp; tail=temp; } } void queue::dequeue(){ node *temp=front; if(front==NULL) { cout<<"queue is empty"<<endl; return; } if(front==tail) { front=tail=NULL; } else { front=front->next; } free(temp); } int queue::frontt() { if(front==NULL) { cout<<"queue is empty"<<endl; } return front->value; } void queue::print() { node *temp = front; while (temp != NULL) { cout << temp->value; temp = temp->next; } cout << endl; } void queue::insertion_sort() { int temp=front->value; while(front->next!=NULL) { while(front->value>front->next->value && front!=NULL) { swap(front->value, front->next->value); } } } int main() { queue q; q.Enqueue(7); q.Enqueue(1); q.Enqueue(4); q.Enqueue(5); q.Enqueue(2); q.Enqueue(0); q.Enqueue(8); q.print(); cout<<endl; q.insertion_sort(); cout<<endl; q.print(); }
Что я уже пробовал:
Я пытался использовать реализацию на основе массива в качестве помощника, но это совсем другое дело.