Здравейте, имам следния проблем...имам задача да напиша програма, която изкарва най-малкото число от даден списък и го поставя в края на списъка. Стигнах до тук и не знам как да продължа...не намирам начин да го поставя отзад..би ли ми помогнал някой..Благодаря предварително
#include "stdafx.h
#include <iostream>
#include <iostream>
#include<list>
#include<stdlib.h>
template <class T> struct elem { T inf; elem <T> *link; };
template <class T> class List {
public: List();
~List();
void AddAfter(T y, T x);
void AddBefore(T y, T x);
int Del_El(T x);
void Print_list();
void Del_list();
public: elem <T> *first;
// void Del_list();
};
template <class T> List<T>::List() { first = NULL; }
template <class T> List<T>::~List() { Del_list(); }
template <class T> void List<T>::AddAfter(T y, T x)
{
elem <T> *q = new elem <T>;
elem <T> *p = first;
while (p && p->inf != y)p = p->link;
if (p) {
q->inf = x;
q->link = p->link;
p->link = q;
}
else {
q->inf = x;
q->link = first;
first = q;
}
}
template <class T>
void List<T>::AddBefore(T y, T x) {
elem <T> *q = new elem <T>;
elem <T> *p = first;
while (p && p->inf != y)p = p->link;
if (p) {
*q = *p; p->inf = x;
p->link = q;
}
else {
q->inf = x;
q->link = first;
first = q;
}
}
template <class T>
int List <T>::Del_El(T x) {
if (first->inf == x) {
elem <T> *q = first;
first = first->link;
delete q;
return 1;
}
elem <T> *p = first;
while (p->link && p->link->inf != x)p = p->link;
if (!p->link)return 0;
elem <T> *q = p->link;
p->link = q->link;
delete q; return 1;
}
template <class T>
void List<T>::Print_list() {
elem <T> *p = first;
while (p) {
cout << p->inf << " "; p = p->link;
}
cout << endl;
}
template <class T>
void List<T>::Del_list() {
elem <T> *p = first, *q;
while (p) {
q = p; p = p->link;
delete q;
}
}
int main() {
using namespace std;
system("chcp 1251");
List<int>Li;
elem<int>*p; //помощен указател
int N=30,A[30], min = 0, br = 0, x, n, i;
cout << " Въведете броя на елементите в списъка: "; //цикъл за създаване на списък
cin >> br;
for (i = 0; i < br; i++) {
cout << "\n A[" << i + 1 << "]=";
cin >> A[i];
}
min = A[0];
for (i = 0; i < br; i++)
{
if (A[i] < min)
{
min = A[i];
}
}
cout << "\n Haй-малката стойност е: " << min;
cout << endl;
return 0;
}

Меню