#include <iostream>
#include <cstdlib>
using namespace std;
struct node
{
int data;
struct node* link;
};
struct node* front;
struct node* rear;
void insert()
{
struct node*temp;
temp = (struct node*)malloc(sizeof(struct node));
cin >> temp->data;
if (front == NULL)
{
front = rear = temp;
}
else
{
rear->link = temp;
rear = rear->link;
}
rear->link = front;
}
void del()
{
struct node* temp;
temp = front;
if (front == NULL)
cout << "Underflow";
else
{
front = front->link;
free(temp);
}
rear->link = front;
}
void disp()
{
struct node* temp;
temp = front;
if (front == NULL)
cout << "Empty";
else
{
do
{
cout << temp->data << "->";
temp = temp->link;
} while (temp != front);
}
rear->link = front;
}
int main()
{
int n;
bool run = true;
while (run)
{
cin >> n;
switch (n)
{
case 1:
insert();
break;
case 2:
del();
break;
case 3:
disp();
break;
case 4:
run = false;
break;
}
}
return 0;
}
Я новичок в этой концепции. Я написал код для удаления вставки и отображения элементов, используя очередь, реализующую концепцию связанного списка. Программа работает без ошибок. Но когда выводится на экран. Мне нужно отобразить вывод вместе с первым элементом, который я вставил .. Например: мой ввод
1
2
1
3
1
4
3
Выход 2-> 3-> 4 ->
но мне нужен выходной сигнал 2-> 3-> 4-> 2->
Я хочу снова увидеть первый элемент на последнем