Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

списки


~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]

Процедуры? Лучше использовать объектно ориентированный подход. В чем заключается трудность?


Наверх

Титульная страница Поиск, карта сайта Написать письмо