Форум программистов, компьютерный форум CyberForum.ru

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

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

Добавление элемента в указанное место - C++

03.07.2015, 17:36. Просмотров 283. Ответов 1
Метки нет (Все метки)

Односвязный не сортированный список
Мой код
Кликните здесь для просмотра всего текста
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
93
#include <stdio.h>
#include <stdlib.h>
#include "malloc.h"
#include "locale.h"
 
struct stack
{
int info;
struct stack *next;
} 
*start=0,*end=0;
 
void dobavlenie();
void vivod();
void maximal();
void udalenie();
 
int main()
{
setlocale(LC_ALL,"rus");
int a;
do
{
printf("\n");
printf("1.Добавить запись в указаное место\n");
printf("2.Удаленить запись из начала\n");
printf("3.Вывести список\n");
printf("4.Значение максимального элемента\n");
printf("5.Выход из программы\n");
printf("\n");
scanf("%d",&a);
switch(a)
{
case 1:printf("\n");dobavlenie();;break;
case 3:printf("\n");vivod();break;
case 2:printf("\n");udalenie();break;
case 4:printf("\n");maximal();break;
};
}
while(a!=5);
free(start);
return 0;
}
 
void dobavlenie()
{
struct stack *temp;
int a;
temp=(struct stack*) malloc(sizeof(struct stack));
if(end)
{
end->next=temp;
}
temp->next=NULL;
printf("Запись: ");
scanf("%d",&a);
temp->info=a;
end=temp;
if(!start) start=end;
}
 
void vivod()
{
struct stack *temp;
temp=start;
while(temp)
{
printf("%d\n",temp->info);
temp=temp->next;
}
}
 
void maximal()
{
int max=start->info;
for(struct stack *temp=start->next;temp;temp=temp->next)
{
if(max<temp->info)
{
max=temp->info;
}
}
printf("%d\n",max);
}
 
 
void udalenie()
{
struct stack *temp;
if(start) temp=start->next; else return;
free(start);
start=temp;
}

Нужно добавить добавление элемента в указанное место.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void dobavlenie()
{
struct stack *temp;
int a;
temp=(struct stack*) malloc(sizeof(struct stack));
if(end)
{
end->next=temp;
}
temp->next=NULL;
printf("Запись: ");
scanf("%d",&a);
temp->info=a;
end=temp;
if(!start) start=end;
}
Тут добавление в конец
Хелп, завтра курсач сдавать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2015, 17:36     Добавление элемента в указанное место
Посмотрите здесь:

Списки: добавление i-ого элемента в любое место списка - C++
Дан односвязный список, нужно организовать добавление iого элемента в любое место списка. Проблема в том что первый элемент смещается сразу...

Добавление элементов в любое место двухсвязного списка - C++
Есть двухсвязный список, В КОТОРОМ ЕЛЕМЕНТЫ ДОБАВЛЯЮТСЯ В КОНЕЦ. Как сделать что б можно было добавлять элементы в начало и в середину. ...

В матрице A(n×m) найти максимальный элемент и путем перестановки строк и столбцов поместить его на место элемента a 00 - C++
pomogite....pozhaluysta...) В матрице A(n×m) найти максимальный элемент и путем перестановки строк и столбцов поместить его на место...

В матрице найти наибольший и наименьший элементы и поместить их на место первого и последнего элемента матрицы соответственно (Pascal -> C++) - C++
В заданной матрице D найти наибольший и наименьший элементы и поместить их на место первого и последнего элемента матрицы соответственно....

Добавление элемента в БД - C++
Доброго времени суток!Возникла такая проблема, что при добавлении нового элемента в БД, в первый элемент записывается какая то ерунда, а со...

Добавление элемента - C++
Как наладить добавление элемента в структуру. (предпочтительно без указателей) можно словами, но попроще^^

Добавление элемента - C++
Подскажите как добавить элемент в конец линейного списка..вот мои фун-ии добавления.. #include &lt;windows.h&gt; #include &lt;string&gt; ...

Добавление элемента - C++
Уважаемые программисты,подскажите как сделать так, чтобы добавление элемента происходило не в начало списка,а в конец? я пробовал...

Добавление элемента в список - C++
У меня есть список, пока в нем функции вывода данных print, добавление add и вывод первого Begin() и последнего End() элементов. struct...

Добавление элемента в список - C++
Spis2* put(Spis2 *current, int info) { Spis2 *temp = new Spis2; temp-&gt;info = info; temp-&gt;next = current; temp-&gt;prev = NULL; ...

Добавление элемента в массив - C++
Написал шаблонную функцию добавления элемента в массив template &lt;typename T&gt; void MyArray&lt;T&gt;::add_elem(T el) { try{ ...

Добавление элемента в стек - C++
Здравствуйте, после цикла for, в котором добавляю элементы в стек, голова стека begin остается = NULL, в чем проблема? #include...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Krasiosoft
51 / 51 / 15
Регистрация: 01.06.2015
Сообщений: 189
03.07.2015, 21:59     Добавление элемента в указанное место #2
Добавляет элемент после заданного места, счет начинается с 0.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void appendAfter(int n){
 
    if(!start){
        printf("Список пустой.\n");
        return;
    }
 
    for(struct stack *temp=start;temp;temp=temp->next){
        if(n<=0){
            struct stack *newElem = new struct stack;
            newElem->next=temp->next;
            temp->next=newElem;
            printf("Запись: ");
            scanf("%d",&newElem->info);
            return;
        }
        n--;
    }
    printf("Нету такого номера элемента.\n");
}
Ответ Создать тему
Опции темы

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