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

Скип-список - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача на циклы. Дано натуральное n. Вычислить http://www.cyberforum.ru/cpp-beginners/thread970935.html
Добрый всем день! Необходима помощь с решением этого цикла: Дано натуральное n. Вычислить: 1/22 + 1/42 + ... + 1/(2n) n .
C++ Как из программы считать данные с сайта? К примеру: при запуске программы нужно получить данные с сайта прогноза погоды(допустим влажность,давление,ветер).Как это сделать?Есть какие-либо функции? http://www.cyberforum.ru/cpp-beginners/thread970921.html
Перевод с Pascal на C++ C++
Помогите с программой нужно переделать ее на C ++ builder Program F_An; uses CRT; type complex = record re, im: real; end; type Opis_comp = record nam:char;a,b:integer; par: real; end; const n=2; Ninp=1; Nout=2; Nf=21; f1=0.01; f2=100; Zapis: array of Opis_comp= ((nam: 'R'; a:1; b:2; par:1),
C++ IntelliSense: требуется выражение
Подскажите, почему выдает ошибку? Объявление textColor: SDL_Color textColor;
C++ Ошибка при наследовании класса http://www.cyberforum.ru/cpp-beginners/thread970828.html
Всем доброго времени суток, пытаюсь отнаследовать класс, вот такой код я смастерил: #ifndef CLASS_H_ #define CLASS_H_ class stack { protected: int *turn; int count, size; public:
C++ Доработка структуры (удалить первый элемент с заданным объемом информации, добавить элемент перед элементом с указанным номером) //--------------------------------------------------------------------------- ЗАДАНИЕ:Создать двоичный файл из элементов , заданных структурой НУЖНО: удалить первый элемент с заданным объемом информации, добавить элемент перед элементом с указанным номером #include <vcl.h> #include <fstream.h> #include <iostream.h> #include <conio.h> подробнее

Показать сообщение отдельно
GambLex
0 / 0 / 0
Регистрация: 14.10.2012
Сообщений: 58
07.10.2013, 10:45     Скип-список
не получается исправить ошибку. Кто знает решение?
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
/* skip list */
 
#include <stdio.h>
#include <stdlib.h>
 
/* define data-type and compare operators here */
typedef int T;                  /* type of item to be stored */
#define compLT(a,b) (a < b)
#define compEQ(a,b) (a == b)
 
/* levels range from (0 .. MAXLEVEL) */
#define MAXLEVEL 15
 
typedef struct Node_ {
    T data;                     /* user's data */
    struct Node_ *forward[1];   /* skip list forward pointer */
} Node;
 
typedef struct {
    Node *hdr;                  /* list Header */
    int listLevel;              /* current level of list */
} SkipList;
 
SkipList list;                  /* skip list information */
 
#define NIL list.hdr
 
Node *insertNode(T data) {
    int i, newLevel;
    Node *update[MAXLEVEL+1];
    Node *x;
 
   /***********************************************
    *  allocate node for data and insert in list  *
    ***********************************************/
 
    /* find where data belongs */
    x = list.hdr;
    for (i = list.listLevel; i >= 0; i--) {
        while (x->forward[i] != NIL 
          && compLT(x->forward[i]->data, data))
            x = x->forward[i];
        update[i] = x;
    }
    x = x->forward[0];
    if (x != NIL && compEQ(x->data, data)) return(x);
 
    /* determine level */
    for (newLevel = 0; rand() < RAND_MAX/2 && newLevel < MAXLEVEL; newLevel++);
 
    if (newLevel > list.listLevel) {
        for (i = list.listLevel + 1; i <= newLevel; i++)
            update[i] = NIL;
        list.listLevel = newLevel;
    }
 
    /* make new node */
    if ((x = malloc(sizeof(Node) + 
      newLevel*sizeof(Node *))) == 0) {
        printf ("insufficient memory (insertNode)\n");
        exit(1);
    }
    x->data = data;
 
    /* update forward links */
    for (i = 0; i <= newLevel; i++) {
        x->forward[i] = update[i]->forward[i];
        update[i]->forward[i] = x;
    }
    return(x);
}
 
void deleteNode(T data) {
    int i;
    Node *update[MAXLEVEL+1], *x;
 
   /*******************************************
    *  delete node containing data from list  *
    *******************************************/
 
    /* find where data belongs */
    x = list.hdr;
    for (i = list.listLevel; i >= 0; i--) {
        while (x->forward[i] != NIL 
          && compLT(x->forward[i]->data, data))
            x = x->forward[i];
        update[i] = x;
    }
    x = x->forward[0];
    if (x == NIL || !compEQ(x->data, data)) return;
 
    /* adjust forward pointers */
    for (i = 0; i <= list.listLevel; i++) {
        if (update[i]->forward[i] != x) break;
        update[i]->forward[i] = x->forward[i];
    }
 
    free (x);
 
    /* adjust header level */
    while ((list.listLevel > 0)
    && (list.hdr->forward[list.listLevel] == NIL))
        list.listLevel--;
}
 
Node *findNode(T data) {
    int i;
    Node *x = list.hdr;
 
   /*******************************
    *  find node containing data  *
    *******************************/
 
    for (i = list.listLevel; i >= 0; i--) {
        while (x->forward[i] != NIL 
          && compLT(x->forward[i]->data, data))
            x = x->forward[i];
    }
    x = x->forward[0];
    if (x != NIL && compEQ(x->data, data)) return (x);
    return(0);
}
 
void initList() {
    int i;
 
   /**************************
    *  initialize skip list  *
    **************************/
 
    if ((list.hdr = malloc(sizeof(Node) + MAXLEVEL*sizeof(Node *))) == 0) {
        printf ("insufficient memory (initList)\n");
        exit(1);
    }
    for (i = 0; i <= MAXLEVEL; i++)
        list.hdr->forward[i] = NIL;
    list.listLevel = 0;
}
 
int main(int argc, char **argv) {
    int i, *a, maxnum, random;
 
    /* command-line:
     *
     *   skl maxnum [random]
     *
     *   skl 2000
     *       process 2000 sequential records
     *   skl 4000 r
     *       process 4000 random records
     *
     */
 
    maxnum = atoi(argv[1]);
    random = argc > 2;
 
    initList();
 
    if ((a = malloc(maxnum * sizeof(*a))) == 0) {
        fprintf (stderr, "insufficient memory (a)\n");
        exit(1);
    }
 
    if (random) {
        /* fill "a" with unique random numbers */
        for (i = 0; i < maxnum; i++) a[i] = rand();
        printf ("ran, %d items\n", maxnum);
    } else {
        for (i = 0; i < maxnum; i++) a[i] = i;
        printf ("seq, %d items\n", maxnum);
    }
 
    for (i = 0; i < maxnum; i++) {
        insertNode(a[i]);
    }
 
    for (i = maxnum-1; i >= 0; i--) {
        findNode(a[i]);
    }
 
    for (i = maxnum-1; i >= 0; i--) {
        deleteNode(a[i]);
    }
    return 0;
Ошибка 1 error C2440: =: невозможно преобразовать "void *" в "Node *"
Ошибка 2 error C2440: =: невозможно преобразовать "void *" в "Node *"
Ошибка 3 error C2440: =: невозможно преобразовать "void *" в "int *"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru