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

Оптимизировать добавление элемента в линейный список - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти в n-мерном пространстве min расстояние от начала координат до отрезка, заданного координатами концов http://www.cyberforum.ru/cpp-beginners/thread836586.html
Найти в n-мерном пространстве минимальное расстояние от начала координат до отрезка , заданного координатами своих концов. Минимальное расстояние будет в том случае если на этот отрезок падает...
C++ Написать программу для вычисления значения выражения(C++) Байт, а еще вот это можно? G=ln\left|\prod_{i=0}^{4}({x}_{i}+\sum_{k=0}^{i}{x}_{k}) \right| http://www.cyberforum.ru/cpp-beginners/thread836574.html
C++ Где могу прочитать про основы ООП?
Где могу прочитать про основы ООП?
Перевести математическую формулу в С++ C++
Ребят помогите.... очень нужно. Всю программу написал, а вот формулу одну не могу вывести G=\sum_{i=0}^{4}*\frac{cos(\prod_{k=0}^{i}({x}_{k}-0.5))}{{x}_{i}-1.2}
C++ Список модулей в массив http://www.cyberforum.ru/cpp-beginners/thread836536.html
Получаю список модулей кодом: int PrintModules( DWORD processID ) { HMODULE hMods; HANDLE hProcess; DWORD cbNeeded; unsigned int i; // Print the process identifier.
C++ Создание класса (создать класс информационной системы тур агенства) Помогите пожалуйста. Нужно создать класс информационной системы тур агенства, который будет считывать информацию из файла и проводить поиск по таким критериям: название тура, цена тура и номер тура. подробнее

Показать сообщение отдельно
aleksandr_t94
0 / 0 / 0
Регистрация: 27.01.2013
Сообщений: 100

Оптимизировать добавление элемента в линейный список - C++

13.04.2013, 14:30. Просмотров 386. Ответов 3
Метки (Все метки)

Функция void add_pered() добавляет перед элементов номер 5 нужный нам элемент. Как можно оптимизировать работу программы? Она работает, но охота немного поизгаляться над ней
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
#include <stdio.h>
#include <stdlib.h>
 
struct Node
{
    int num;
    Node *next;
}*Head, *pered, *help_before, *help_after;
void fill()
{
    int i;
    Head = NULL;//голова списка
 
    for(i=0;i<10;i++)
    {
        if(Head == NULL)
        {
            Head = (struct Node*)malloc(sizeof(Node));
            Head -> num = i;
            Head -> next = NULL;
        }
        else
        {
            Node *tmp = (struct Node*)malloc(sizeof(Node));
            tmp -> num = i;
            tmp -> next = Head;
            Head = tmp;
        }
    }
}
void print()
{
    Node *tmp_h = Head; 
    while(tmp_h != NULL)
    {
        printf("%d\n", tmp_h -> num);
        tmp_h = tmp_h -> next;
    }
}
void free()
{
    Node *tmp_free = Head;
    while(tmp_free!=NULL)
    {
        Head=Head->next;
        free(tmp_free);
        tmp_free=Head;
    }
}
/*Добавляем перед i==5 наш pered*/
void add_pered()
{
    pered=(struct Node*)malloc(sizeof(Node));
    if(pered==0) exit(1);
    pered->num=100;
    help_before=Head;
    for(int i=9; i!=5; i--)
        help_before=help_before->next;//help стоит на 5-ом номере i; надо поставить перед ним наш pered со значением pered-num==100;
 
    help_after=help_before->next; //элемент следующий за help_before
    help_before->next=pered; //начинаем раздвигать и вставлять
    pered->next=help_after; //следующий элемент за pered
}
int main()
{
    fill();
    add_pered();
    print();
    free();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru