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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Biggins
0 / 0 / 0
Регистрация: 24.11.2010
Сообщений: 18
06.12.2011, 21:59     Добавление в список нового элемента #1
Всем доброе время суток. Мне нужна помощь, есть задание: нужно добавить в список новый элемент, после элемента, совпадающего с ключем x, если такого нет, то добавить новый элемент в начало списка.
Вот код программы, это подзадание, я уже организовал список и отсортировал его, но с добавлением проблемма. Заранее спасибо.


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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include <iostream>
#include <conio.h>
using namespace std;
 
 
struct LIST
{
    int value;
    LIST* nextItem;
    
};
 
 
 
 
 
 
 
void printList(LIST* List)
{
    LIST *currentItem=List;
 
    while(currentItem != NULL) 
    {
        cout<<currentItem->value<<endl;
        currentItem=currentItem->nextItem;
    }
}
 
 
LIST* createList(int size)
{
    LIST* List=new LIST;
    LIST* currentItem=List;
 
    currentItem->value=rand()% 101;
 
    for(int i=1;i<size;i++)
    {
 
        currentItem->nextItem=new LIST;
        currentItem->nextItem->value=rand()%101;
 
        currentItem=currentItem->nextItem;
    };
    currentItem->nextItem = NULL;
    return List;
}
 
void sort(LIST* list, int size) 
{
    
    for(int i = 0; i < size; i++) 
    {
        LIST* current = list;
        for(int j = 0; j < size-1; j++) {
            if(current->value > current->nextItem->value) 
            {
                int tmp = current->value;
                current->value = current->nextItem->value;
                current->nextItem->value = tmp;
            }
            current = current->nextItem;
        }
    }
 
}
 
 
 
 
 
 
 
 
 
 
int main()
{
     
    
    LIST* testList;
    int testListSize=0;
    
 
    std::cout<<"Enter size of list:";
    
    std::cin>>testListSize;
    
    if(testListSize==0)
    {
        std::cout<<"List size is wrong!\n";
        getch();
        exit(0);
    }
    
    testList=createList(testListSize);
    
    std::cout<<"\n\n\nList:\n\n";
 
    printList(testList);
    sort(testList, testListSize);
    std::cout<<"\n\n\nSorted List:\n\n";
 
    printList(testList);
    
    
    
    
 
    
    
    getch();
   
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2011, 21:59     Добавление в список нового элемента
Посмотрите здесь:

C++ Односвязный список с добавлением нового элемента в конец.
C++ Добавление нового элемента в VS Express 2013
Вставка нового элемента в линейный односвязный список перед элементом с максимальным значением ключа C++
C++ Добавление нового элемента в список
C++ Добавление элемента в список по номеру
C++ Heap corruption detected при добавлении нового элемента в однонаправленный список
Добавление элемента в список C++
C++ Добавление элемента в список

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lavan
51 / 51 / 1
Регистрация: 21.03.2009
Сообщений: 371
06.12.2011, 22:32     Добавление в список нового элемента #2
Для односвязного списка поиск и вставка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
bool findelement(List *head,List *elem) {
  List *inhead=head;
   while(inhead->nextList!=NULL){
       if(inhead->value==elem->value){
         List *nl;
          nl=inhead->nexList;//сохранили адрес след узла
            inhead->nextList=elem;
             elem->nextList=nl;
        return true;
                 }
}
         return false;
}
void addhead(List *head,List *elem){
         List *tmp;
         tmp=head;
         head=elem;
         head->nextList=tmp->nextList;
         
   }
//использование
if(!findelement(...))
   addhead(...)
Biggins
0 / 0 / 0
Регистрация: 24.11.2010
Сообщений: 18
06.12.2011, 23:24  [ТС]     Добавление в список нового элемента #3
Огромное спасибо!
Yandex
Объявления
06.12.2011, 23:24     Добавление в список нового элемента
Ответ Создать тему
Опции темы

Текущее время: 00:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru