Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.10;
Скачать: CL | DM;

Вниз

списки   Найти похожие ветки 

 
~Aid~   (2006-11-21 22:40) [0]

у меня такой вопрос. надо реализовать список при помощи двумерного массива. всего 3 процедуры инициализация, вставка и удаление...как это сделать??


 
Zeqfreed ©   (2006-11-21 23:04) [1]

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


 
Джо ©   (2006-11-21 23:29) [2]

> [0] ~Aid~   (21.11.06 22:40)
> у меня такой вопрос. надо реализовать список при помощи
> двумерного массива. всего 3 процедуры инициализация, вставка
> и удаление...как это сделать??

Рекоммендую книгу Н. Вирта "Алгоритмы и структуры данных". Хорошая книга, кроме шуток. Отлично описываются все эти фундаментальные вещи.


 
Zeqfreed ©   (2006-11-21 23:35) [3]

#include <stdio.h>
#include <stdlib.h>

#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 <= 0) || (from < 0)) return;

switch (direction) {
 case SHIFT_LEFT:
 for (i = length + 1; i > 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


 
MikePetrichenko ©   (2006-11-22 00:25) [4]


> Zeqfreed ©   (21.11.06 23:35) [3]

Эх... Лучше на фортране было :(


 
Eraser ©   (2006-11-22 00:40) [5]

Еще хорошая книга - Бакнелл "Фундаментальные алгоритмы и структуры данных в Delphi".


 
Zeqfreed ©   (2006-11-22 01:25) [6]


> Эх... Лучше на фортране было :(

Пишу на чем сподручней :)



Страницы: 1 вся ветка

Текущий архив: 2006.12.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
15-1163771975
Labamba
2006-11-17 16:59
2006.12.10
PIN to PIN messages


15-1163876968
Ne-Ld
2006-11-18 22:09
2006.12.10
Посоветуйте хорошую книгу про энтропию и информацию.


2-1164178769
alucard
2006-11-22 09:59
2006.12.10
Подскажите нормальное описание всех компонентов Delphi7


1-1162125556
Yuiop
2006-10-29 15:39
2006.12.10
Конвертировать из Rave в *.doc


15-1163794567
Витян
2006-11-17 23:16
2006.12.10
Микроконтроллер ATmega16