#include <iostream>
using std::cout;
struct tqueue {
int val;
tqueue* next;
};
void push(tqueue** head, tqueue** tail, int val) {
tqueue* ptr= new tqueue();
ptr->val = val;
ptr->next = NULL;
if(*head == NULL)
*head = *tail = ptr;
else {
(*tail)->next = ptr;
*tail = ptr;
}
}
// поместить мaксимальный элемент в начало
void max_first(tqueue** head) {
tqueue* tmp = *head;
for(tqueue* iter = *head; iter != NULL; iter = iter->next) {
if(iter->val > tmp->val)
tmp = iter;
}
int val = tmp->val;
tmp->val = (*head)->val;
(*head)->val = val;
}
int main(void){
tqueue* head = NULL, *tail = NULL;
//random
for(int i = 0; i < 100; i++)
push(&head, &tail, 1 + std::rand()%100);
max_first(&head);
tqueue* tmp;
while(head != NULL){
cout << head->val << '\n';
tmp = head;
head = head->next;
delete tmp;
}
return 0;
}