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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проверка на утечку памяти http://www.cyberforum.ru/cpp-beginners/thread591421.html
Всем доброго времени суток. Сразу оговорюсь, я не профессионал, программирование - моё хобби, которое помогает мне по основному направлению. Так недавно я написал небольшую программку на Qt. Хоть я и...
C++ С чего начать приветствую я Алексей 35 лет.. щас есть свободное время вот думаю начать программировать давно хотел.. что можете посоветовать? начинаю с Липпмана С ++ вводный курс.. http://www.cyberforum.ru/cpp-beginners/thread591414.html
Погрешность в интегрировании C++
На основе этого кода (4 метода вычисления интеграла по функции 3 *(sin(pow(x,2))) ) написать следующую прогу: Ввести с клавиатуры погрешность и найти максимальное разбиение n которое работает с этой...
C++ Нормальное распределение
Написать программу, в которой реализовать функцию генерации n (задается с клавиатуры) нормально распределенных чисел при заданных математическому ожиданию и среднеквадратичному отклонению.
C++ Равномерно распределенные случайные величины http://www.cyberforum.ru/cpp-beginners/thread591405.html
Создать программу, в которой реализовать генерацию n равномерно распределенных случайных чисел, сумма которых будет равна заранее заданному натуральному числу.
C++ Реализация аппарата натуральных дробей с использованием многомерных массивов Написать программу, в которой реализовать механизм работы с рациональными дробями. Для этого использовать трехмерный массив данных. В таком массиве строки и столбцы используются обычным образом... подробнее

Показать сообщение отдельно
gary jules
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 11

Сортировка списка прямыми включениями (вставками) - 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
Миниатюры
Сортировка списка прямыми включениями (вставками)  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru