Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2016, 15:04   #1
Natusik86
 
Аватар для Natusik86
 
Регистрация: 28.10.2016
Сообщений: 3
По умолчанию односвязний список, C++.

Добрый день.
Имеются несколько функций для работы с однонаправленным списком. Не получается корректно вызвать эти функции. Может у кого есть хорошие примеры?
Также может кто знает, как реализовать функцию, которая узнаёт, все ли значения, которые встречаются в одноправленном списке, имеются хотя-бы в 2 экземплярах.

Я так понимаю, что надо проверить весь список и каждое значения откладывать в память, но как это реализовать?
спасибо.

Код:
#include <iostream> 
#include <iomanip>
 
using namespace std;
 
 
struct Single_List {                //создает структуру данных
               int Data;                        
               Single_List *Next;               
 };
 
 
                                    //создание однонаправленного списка (добавления в конец)
void Make_Single_List(int n,Single_List** Head){
  if (n > 0) {
    (*Head) = new Single_List();
                                  //выделяем память под новый элемент
    cout << "Введите значение ";
    cin >> (*Head)->Data;
                                  //вводим значение информационного поля
    (*Head)->Next=NULL;                              //обнуление адресного поля
     Make_Single_List(n-1,&((*Head)->Next));
  }
}
 
 
                                        //печать однонаправленного списка
void Print_Single_List(Single_List* Head) {
  if (Head != NULL) {
    cout << Head->Data << "\t";
    Print_Single_List(Head->Next);
                                        //переход к следующему элементу
  }
  else cout << "\n";
}
 
                                       //освобождение памяти, выделенной под однонаправленный список
void Delete_Single_List(Single_List* Head){
  if (Head != NULL){
    Delete_Single_List(Head->Next);
    delete Head;
  }
}
 
 
main() 
{ 
 
}
Natusik86 вне форума Ответить с цитированием
Старый 28.10.2016, 15:28   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,833
По умолчанию

А как вы пытались их вызвать? Что за ошибки вам писал компилятор?
p51x вне форума Ответить с цитированием
Старый 28.10.2016, 15:39   #3
Natusik86
 
Аватар для Natusik86
 
Регистрация: 28.10.2016
Сообщений: 3
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А как вы пытались их вызвать? Что за ошибки вам писал компилятор?
пока что получилось вот что. Правда, думаю нужно некое подобие меню, после каждого шага.


Код:
int main()
{
    Single_List* list = NULL;
 
    //создание однонаправленного списка (добавления в конец)
    
    Make_Single_List(10, &list);
    
    //печать однонаправленного списка
     Print_Single_List(list);
 
    //освобождение памяти, выделенной под однонаправленный список
    Delete_Single_List(list);
    list = NULL;
 
}
Natusik86 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Список-под список-еще один подсписок nelo_001 ASP.NET 2 20.04.2016 22:45
лабораторная работа на тему Список спортсменов. задание отсортировать список Гуменчук_Дарья Помощь студентам 3 15.03.2016 12:05
создать список л3 из элементов входящих и в список л1 и в список л2 goosha_gio C++ Builder 1 27.06.2013 22:22
Создать односвязный список и вывести его на экран. Из этого списка создать новый список по указанному ниже правилу и новый список San111 Паскаль, Turbo Pascal, PascalABC.NET 1 15.05.2012 22:08
Список с заглавным звеном, из текстового файла получить список из записей и по нему уже сделать задание Zigfried Помощь студентам 2 04.10.2010 20:29