![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
списки
~Aid~ © (2006-11-21 22:40:00)у меня такой вопрос. надо реализовать список при помощи двумерного массива. всего 3 процедуры инициализация, вставка и удаление...как это сделать??
Zeqfreed (2006-11-22 01:25:00) [1]
> Эх... Лучше на фортране было :(
Пишу на чем сподручней :)
Eraser (2006-11-22 00:40:00) [2]Еще хорошая книга - Бакнелл "Фундаментальные алгоритмы и структуры данных в Delphi".
MikePetrichenko (2006-11-22 00:25:00) [3]
> Zeqfreed © (21.11.06 23:35) [3]
Эх... Лучше на фортране было :(
Zeqfreed (2006-11-21 23:35:00) [4]
#include
#include
#define MAX_ARRAY_SIZE 500
#define SHIFT_LEFT 1
#define SHIFT_RIGHT -1
static int array[MAX_ARRAY_SIZE];
static int length = 0;
void shift(int from, int direction)
{
int i;
if (from > length) from = length;
if ((length from; i--)
{
array[i] = array[i-1];
}
break;
case SHIFT_RIGHT:
for (i = from; i < length; i++)
{
array[i] = array[i + 1];
}
break;
}
}
void insert(int value, int at_pos)
{
if (length < MAX_ARRAY_SIZE) {
shift(at_pos, SHIFT_LEFT);
array[at_pos] = value;
length++;
} else
fprintf(stderr, "No more free space for data.\n");
}
void delete(int at_pos)
{
if ((length > 0) && (at_pos < length)) {
shift(at_pos, SHIFT_RIGHT);
length--;
}
}
int main()
{
int i;
insert(5, 0);
insert(4, 0);
insert(4, 0);
insert(3, 0);
insert(2, 0);
insert(1, 0);
delete(3);
for (i = 0; i < length; i++)
printf("%d\n", array[i]);
return 0;
}
Во! Кажется, даже работает :) Но я плохо протестировал, че-то у меня голова не соображает, полчаса писал наверное этот код. Разбирайся :-P
Джо (2006-11-21 23:29:00) [5]> [0] ~Aid~ (21.11.06 22:40)
> у меня такой вопрос. надо реализовать список при помощи
> двумерного массива. всего 3 процедуры инициализация, вставка
> и удаление...как это сделать??
Рекоммендую книгу Н. Вирта "Алгоритмы и структуры данных". Хорошая книга, кроме шуток. Отлично описываются все эти фундаментальные вещи.
Zeqfreed (2006-11-21 23:04:00) [6]Процедуры? Лучше использовать объектно ориентированный подход. В чем заключается трудность?