Pagini recente » Cod sursa (job #41417) | Cod sursa (job #2321742) | Cod sursa (job #79102) | Cod sursa (job #1978694) | Cod sursa (job #2903200)
#include <fstream>
using namespace std;
ifstream fin("order.in");
ofstream fout("order.out");
struct node
{
int poz;
node* next;
node* prev;
};
void appendNode(node** head_ref, int poz, bool last)
{
node* new_node = new node;
node* last_node = *head_ref;
new_node->poz = poz;
new_node->next = NULL;
if (*head_ref == NULL) {
new_node->prev = NULL;
*head_ref = new_node;
return;
}
while (last_node->next != NULL)
last_node = last_node->next;
last_node->next = new_node;
new_node->prev = last_node;
(*head_ref)->prev = new_node;
if (last)
new_node->next = *head_ref;
return;
}
int main()
{
int n;
fin >> n;
node* head = NULL;
for (int i = 1; i <= n; i++)
{
appendNode(&head, i, (i == n) ? true : false);
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= i; j++)
{
head = head->next;
}
fout << head->poz << ' ';
head->prev->next = head->next;
head->next->prev = head->prev;
}
}