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

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

Войти
Регистрация
Восстановить пароль
 
gary jules
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 11
#1

Сортировка списка прямыми включениями (вставками) - C++

30.05.2012, 16:01. Просмотров 922. Ответов 1
Метки нет (Все метки)

Ребята кто может помогите с курсовой.

Пытаюсь написать класс двунаправленного списка. Проблема возникла с функцией добавления addToList. При добавлении нового элемента он должен проходить по списку до того как найдет нужное место, в результате получится отсортированный список.

Дело в том что при выводе первый элемент списка не выводится то есть он где то теряется или еще что. Не могу найти ошибку.

Поправьте код пожалуйста!

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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
// элемент списка 
struct Element
{
 public:
        int number;
        char line[15];
        
        Element *next;  // указатели на следующий
        Element *pred;  // и на предыдущий элементы списка
};
typedef Element *Elp;
 
// класс
class List
{
 public:
        Element *pHead;      
        Element *pPrev;     
        int countElem;        
     
        List();           
        ~List();                  
     
        void addToList(int n, char str[15]);          
        void printList();                         
        void delAllList();                        
};
 
 
// реализация функций
 
List::List()    // конструктор
{
    pHead = NULL;
    pPrev = NULL;
    countElem = 0;
}
 
List::~List()   // деструктор
{
    delAllList();
}
 
 
void List::addToList(int n, char str[15])        // функция добавления
{
    Element *temp = new Element;                 //создается временный элемент
    Elp point;
         
    if(pHead == NULL) {
             temp->pred = NULL;          
             temp->next = NULL;          
             pHead = temp;               
    }
    
    else
    
    {                            
        temp->number = n;
        strcpy(temp->line, str); 
    
            if (pHead->number > temp->number) 
            {
                     temp->next = pHead;
                     pHead->pred = temp;
                     temp->pred = NULL;
                     
                     pHead = temp;
            }
        
        else 
            {       
                   point = pHead; 
                   while(temp->next && (temp->number > point->number))
                            point = point->next;
                   point->pred->next=temp;
                   temp->next=point;
                   temp->pred = point->pred;
                   point->pred = temp;  
            }
    }
}
 
void List::printList()                   // функция вывода на экран
{
    Element *pTemp = pHead;            
    if (pHead == NULL)                   
    {
        cout << "Fail pust";            
    }
    else                               
    {
        cout << "Block: " << endl;      
        while(pTemp->next)              
        {
            cout << pTemp->number << " ";        
            cout << pTemp->line << endl;         
            pTemp = pTemp->next;       
        }
    }
    cout << endl;
}
 
void List::delAllList()                 
{
    while(pHead != NULL)           
    {
        Element *pTemp = pHead;       
        pHead = pHead->next;           
        delete pTemp;                   
    }
 
    pHead = NULL;
    pPrev = NULL;
}
 
 
main() {
       List A;
       A.addToList(5, "teststring4");
       A.addToList(2, "teststring4");
       A.addToList(3, "teststring4");
       A.addToList(3, "teststring4");
       A.addToList(5, "teststring4");
       A.addToList(7, "teststring4");
       A.addToList(7, "teststring4");
       A.addToList(4, "teststring4");
       
       A.printList();
 
       system("pause");
}
0
Миниатюры
Сортировка списка прямыми включениями (вставками)  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2012, 16:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка списка прямыми включениями (вставками) (C++):

Сортировка двусвязного списка вставками - C++
Добрый день, есть готовый двусвязный список. Нужно было реализовать сортировку вставками любых чисел. В комментариях main() оставил...

Сортировка простыми включениями - C++
Есть массив, его нужно отсортировать простыми включениями(вставками). У меня получилась вот такая вот программа, но выдаёт не совсем...

Сортировка вектора по полю(Сортировка вставками) - C++
Здравствуйте! Нужно написать сортировку вектора по полю weight класса tomato. Вот класс: #pragma once #include &lt;iostream&gt; ...

Сортировка Шелла и сортировка вставками - C++
Напишите программу для: 1)Сортировка вставкой 2)сортировка Шелла

сортировка вставками - C++
Начал изучать Кормена. Написал первый алгоритм. Не сортируется первый элемент массива. Код написан по книге. #include&lt;iostream&gt; using...

Сортировка вставками - C++
Условие: Дан массив целых чисел. Ваша задача — отсортировать его в порядке неубывания с помощью сортировки вставками. Сортировка...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
gary jules
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 11
30.05.2012, 17:24  [ТС] #2
Ну помогите ррребят!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2012, 17:24
Привет! Вот еще темы с ответами:

Сортировка вставками - C++
Сортировка вставками реализация алгоритма на примере одномерных массивов характеристики алгоритма.

Сортировка вставками - C++
Помогите написать программу на языке &quot;СИ&quot; Сортировка вставками. Дана последовательность чисел a1, a2, …, an . Требуется представить ...

Сортировка вставками c++ - C++
Помогите пожалуйста как в С++ сортировать вставками в оконном виде ? Скиньте код.

Сортировка вставками - C++
Сортировка вставками: пусть первые k элементов упорядочены по возростанию. Берется (k+1)-ый элемент и размещается среди первых k...


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

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

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