Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Frozen_pride
0 / 0 / 0
Регистрация: 04.06.2015
Сообщений: 26
#1

Функция вставки элемента в циклический список - C++

16.06.2015, 13:50. Просмотров 508. Ответов 9
Метки нет (Все метки)

Добрый день. Возник такой вопрос. Нам дано циклический список. Нужно написать функцию, которая будет вставлять елементы если будет введен ключ. Я немного завис на всем этом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2015, 13:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция вставки элемента в циклический список (C++):

Функция для вставки элемента в массив - C++
#include <iostream> #include <stdio.h> #include <malloc.h> using namespace std; void insert(int *elem, int index,int *ptr,int *n) ...

Реализовать операцию вставки нового элемента в отсортированный список и операцию извлечения из списка данных - C++
реализовать операцию вставки нового элемента в отсортированный список и операцию извлечения из списка данных о 3-х студентов с самым низким...

Функция добавления элемента в кольцевой список - C++
Здравствуйте. Возник такой вопрос. Как собственно реализовать добавление лемента в кольцевой список? В теории оно то понятно но на практике...

Функция добавления элемента в односвязный список в указанную позицию - C++
Здравствуйте! Помогите пожалуйста написать функцию добавления элемента в односвязный список в указанную позицию.Не могу сообразить как...

Функция: вставка элемента в двусвязный список после заданного - C++
Всем доброго времени суток! Нужно написать функцию вставки элемента в двусвязный список после заданного. Список моего задания состоит из 4...

Функция: продублировать вхождение каждого элемента списка One и сформировать из этих значений список Double - C++
Здравствуйте... При решение данной задачи <В составе программы описать функцию, которая дублирует вхождение каждого элемента списка One и...

9
casper007
67 / 67 / 22
Регистрация: 12.12.2013
Сообщений: 400
16.06.2015, 14:15 #2
Цитата Сообщение от Frozen_pride Посмотреть сообщение
Добрый день. Возник такой вопрос. Нам дано циклический список. Нужно написать функцию, которая будет вставлять елементы если будет введен ключ. Я немного завис на всем этом.
очень информативно. а можно посмотреть как вы все реализовали список?
и зачем вводить ключ? у вас же циклический список. имхо было бы резонно, если вы организовали, например, дерево.
0
Черный мечник
48 / 49 / 17
Регистрация: 29.12.2012
Сообщений: 425
16.06.2015, 14:19 #3
чет сегодня списки популярны
0
Frozen_pride
0 / 0 / 0
Регистрация: 04.06.2015
Сообщений: 26
16.06.2015, 14:29  [ТС] #4
#include <iostream>
#include <stdlib.h>
using namespace std;

struct Node
{
int x;
Node *Next;
};

class List
{
Node *Head, *Tail; //Первый элемент и тот что последний
int size; //Число элементов в списке
public:
List() :Head(NULL), Tail(NULL), size(0){}; //Инициализация элементов в ноль с помощью конструктора
~List(); //Деструктор для освобождения памяти
void Add(int x); //Функция добавления элементов в списов
void Show(int size); //Функция отображения элементов списка
int Count(); //Функция возвращающая число элементов в списке
};

List::~List()
{
while (size != 0) //Пока размерность списка не станет нулевой
{
Node *temp = Head->Next;
delete Head; //Освобождаем память от активного элемента
Head = temp; //Смена адреса начала на адрес следующего элемента
size--; //Один элемент освобожден. корректируем число элементов
}
}

int List::Count()
{
return size; //Возвращаем число элементов списка
}

void List::Add(int x)
{
size++; //При каждом добавлении элемента увеличиваем число элементов в списке
Node *temp = new Node; //Выделение памяти для нового элемента списка
temp->Next = Head; //Замыкание контура. Последний элемент - это начало списка
temp->x = x; //Записываем в выделенную ячейку памяти значение x

if (Head != NULL) //В том случае если список не пустой
{
Tail->Next = temp; //Запись данных в следующее за последним элементом поле
Tail = temp; //Последний активный элемент=только что созданный.
}
else Head = Tail = temp;//Если список пуст то создается первый элемент.
}

void List::Show(int temp)
{
Node *tempHead = Head; //Указываем на голову

temp = size; //Временная переменная равная числу элементов в списке
while (temp != 0) //Пока не выполнен признак прохода по всему списку
{
cout << tempHead->x << " "; //Очередной элемент списка на экран
tempHead = tempHead->Next; //Указываем, что нужен следующий элемент
temp--; //Один элемент считан, значит осталось на один меньше
}
}

void main()
{
system("CLS");
List lst;
lst.Add(100);
lst.Add(200);
lst.Add(300);

lst.Show(lst.Count()); //Показываем список на экране.
cout << endl;
system("PAUSE");
}
0
casper007
67 / 67 / 22
Регистрация: 12.12.2013
Сообщений: 400
16.06.2015, 14:43 #5
Цитата Сообщение от Frozen_pride Посмотреть сообщение
}
если я вас правильно понял, то под понятием "ключ"вы подразумеваете меню для пользователя.

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
void main()
{
system("CLS");
List lst;
int numb;
while(true)
{
cout<<"1 - Add of list"<<"2 - delete to list"<<"3 - show"<<endl;
cout<<"enter #operation"; cin<<numb;
swith(numb)
 {
   case 1: 
     {
         int tmp; cin>>tmp; lst.Add(tmp);
      break;}
   case 2:
     {
        int tmp; cin<<tmp; lst.Delete(tmp);
      break;}
    case 3:
      {
          lst.Show(lst.Count()); //Показываем список на экране.
      break;}
    default:
       { cout<<"repeat input"<<endl; break;}
  }
}
 
cout << endl;
system("PAUSE");
}
Добавлено через 2 минуты
добавьте
C++
1
case 0: {exit(0); break;}
для выхода из программы
0
Черный мечник
48 / 49 / 17
Регистрация: 29.12.2012
Сообщений: 425
16.06.2015, 14:53 #6
Frozen_pride, код не красивый какойто
C++
1
system("CLS");
зачем оно тебе
C++
1
Show(lst.Count())
передаеш переменную которая является size; а внутри ешераз инициализируеш этим size;
0
Frozen_pride
0 / 0 / 0
Регистрация: 04.06.2015
Сообщений: 26
16.06.2015, 17:50  [ТС] #7
На самом деле я плохо разбираюсь в списках. Мне не очень понятно что надо поменять/добавить в этот код. Просто у меня delete не прописан в класе list.

Добавлено через 2 часа 34 минуты
Я напутал с условием. Нужно что бы ключевое слово было добавлено в этот циклический список. Не более.
0
casper007
67 / 67 / 22
Регистрация: 12.12.2013
Сообщений: 400
16.06.2015, 18:59 #8
Цитата Сообщение от Frozen_pride Посмотреть сообщение
Нужно что бы ключевое слово было добавлено в этот циклический список
это как?
0
Frozen_pride
0 / 0 / 0
Регистрация: 04.06.2015
Сообщений: 26
16.06.2015, 21:41  [ТС] #9
ну что бы заданое слово вставлялось в этот список к примеру с конца
0
casper007
67 / 67 / 22
Регистрация: 12.12.2013
Сообщений: 400
16.06.2015, 23:31 #10
Цитата Сообщение от Frozen_pride Посмотреть сообщение
слово вставлялось в этот список с конца
Конец циклического списка? . Лучше сказать после последнего добавленного.
Ну так у вас же уже организовано запоминание последнего добавленного элемента.
Цитата Сообщение от Frozen_pride Посмотреть сообщение
Node *Head, *Tail; //Первый элемент и тот что последний
0
16.06.2015, 23:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.06.2015, 23:31
Привет! Вот еще темы с ответами:

В программе написать функции: вставки элемента, поиска максимального элемента, определения среднего арифметического элементов массива - C++
В целочисленном массиве Х(N) после каждого четного числа вставить максимальный элемент массива. Найти среднее арифметическое элементов ...

Класс "Список", функция добавления элемента в конец - C++
#include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; struct myElem { char *line; myElem *next; ...

Функция вставки в list - C++
Вставить элемент Е после каждого элемента списка, превышающего некоторое значение Р. #include &lt;iostream&gt; #include &lt;list&gt; using...

Функция вставки подстроки в строку - C++
Нужна задача с функцией вставки подстроки в строку. P.S. Функция не должна иметь системных функций, т.е. типо я сам ее написал.


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru