С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
4 / 4 / 1
Регистрация: 12.09.2013
Сообщений: 134
1

Поиск и удаление максимального значения в односвязном списке С++

12.02.2014, 21:58. Показов 2593. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста,никак не могу понять что не так с кодом,почему не ищет максимальный элемент и не удаляет его.
Задание:Сформировать односвязный линейный список по файлу чисел. Удалить из списка узлы с максимальным значением информационного поля.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
 
struct list
{
    int x;  //информационное поле, данные, любой порядковый тип
    list *next;     //указатель на следующий элемент
};
typedef list *Plist;    //ссылка на структуру
 
void CreateFile(fstream&fout, char namefile[15])
{
    int x;
    fout.open(namefile, ios::out|ios::binary);  //двоичный файл
    cout<<"\n Введите x,для окончания ввода введите 1111:";
    cin>>x;
    while (x!=1111)
    {   
        fout.write((char *) &x, sizeof x);
        cin>>x;
    }
    fout.close();
    cout<<"\n";
}
 
void ReadFile(fstream&fin, char namefile[15])
{
    int x;
    fin.open(namefile, ios::in|ios::binary);    //двоичный файл
    if (fin.is_open())
    {
        cout<<"Содержимое файла "<<namefile<<" :\n";
        while (fin.read((char *) &x, sizeof x))
        {
            cout<<x<<" ";
        }
    }
    fin.close();
    cout<<"\n";
}
void Delete_after_q (Plist &q, int &number)
{
    Plist p;
    p = q-> next;
    q -> next = p -> next;  //наведение связей
    number = p -> x;    //сохранение данных
    delete p;       //освобождение памяти
}
 
void Search_max(Plist&first)
{
    Plist p=first;
    int max=-10000;
    while(p!=nullptr)
    {
    if(p->x>max)
    max=p->x;
    p=p->next;
    }
}
 
 
void main()
{
    setlocale (LC_ALL, "Russian");
    fstream fout, fin;
    Plist first;
    int a, max;
    char namefile[15],ch;
    cout<<"\n Введите имя файла:";
    cin>>namefile;
    cout<<"\n Создать новый файл? (y/n)";
    cin>>ch;
    if (ch=='y') 
    {
        CreateFile(fout, namefile);
        ReadFile(fin, namefile);
    } 
    else
    {
        ReadFile(fin, namefile);
    };
    fin.open(namefile, ios::in | ios::binary);
    if (! fin.is_open())
    {
        cout<<"\n Ошибка открытия файла"; exit(1);
    }
    Search_max(first);
    fin.close();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2014, 21:58
Ответы с готовыми решениями:

Поиск максимального элемента в односвязном циклическом списке
Нужно найти max элемент этого динамического списка... помогите пожалуйста // list.cpp: определяет...

Поиск и удаление в односвязном списке
Помогите с удаление элемента по ключу(номеру этажа). При удалении 2-го элемента в списке, удаляется...

Написать функцию нахождения максимального значения в линейном односвязном списке
Нужно написать функцию нахождения максимального значения в линейном односвязном списке. Помогите...

Удаление и поиск элемента в односвязном списке
Вот мои функции, но они почему то не работают: функция удаления удаляет всегда голову, а функция...

0
12.02.2014, 21:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2014, 21:58
Помогаю со студенческими работами здесь

Поиск максимального значения в списке.
HELP! Нужна функция поиска максимального числа в линейном односвязном списке.

Удаление узлов в односвязном списке
Помогите пожалуйста, не могу понять что не так. Нужно удалить узлы содержащие простые...

Удаление чисел в односвязном списке
С клавиатуры вводится последовательность целых чисел, завершающаяся нулем. Создать односвязный...

Удаление по ключу в односвязном списке
Написал алгоритм удаления по ключу в линейном, односвязном списке, но он не удаляет, а коверкает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru