Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

с pascal на с++

37K
29 января 2009 года
gepa
16 / / 22.12.2008
нужна помощь в переводе программы с паскаля на с++
это программа из книги А.В. Ахо, Д.Э.Хопкрофт, Д.Д.Ульман "Структуры данных и алгоритмы" - реализация словарей посредством хеш-таблиц

в архиве находятся страницы этой книги включая описание и сами исходники на pascal
увы выкладываю файл на файлообменнник, поскольку он весит 1мб
[COLOR="Red"]****Увы, если вы не в состоянии дать комментарии по прочитанному - это ваши проблемы. Ссылки удалены. Автору нарушение.*******[/COLOR]

мой код
увы сделал как смог(
что качается структуры ее фактически нету, т.к. переводил все подряд

Код:
#include <stdio.h>
#include <malloc.h>
#include<stdlib.h>
#include<conio.h>

char massiv[10];
char ch;
char legislator;

void favor(char Friend)
{
    Insert(Friend, goodguys);
    Delete(Friend, badguys);
}

void unfavor(char Foe)
{
    Insert(Foe, goodguys);
    Delete(Foe, badguys);
}

void print(char subject)
{
    if (member(subject, goodguys))
    printf("ttt", subject);
    if (member(subject, badys));
    printf("mmmm", subject);
    else
    printf("rrrr",subject);
}

void h(int x)
{
    int i, sum;
    {
        sum=0;
        for (i=1; i<10; i++)
            sum=sum+
            h=sum % B;
    }
}

const int B;

struct celltype
{
    int element;
    celltype *next;
};

celltype Dictionary[B-1];

void Makenull(Dictionary A)
{
    int i;
    for (i=0; i<(B-1); i++)
        A=NULL;
}

bool Member(int x; Dictionary A)
{
    celltype current;
        current=A[h(x)];
        while current==NULL
        {
            if (current->element=x)
                return true;
            else
                current=current->next;
            return false;
        }
}

void Insert(int x; Dictionary A)
{
    int bucket;
    oldheader
        if (Member(x,A)==false)
        {
            bucket=h(x);
            oldheader=A[bucket];
            A[bucket]=new int;
            Apbucket]->element=x;
            A[bucket]->next=oldheader;
        }
}

void Delete(int x; Dictionary A)           
{
    int bucket;
    current
        bucket=h(x);
    if (A[bucket]==NULL)
    {
        if (A[bucket]->element=x)
            A[bucket]=A[bucket]->next;
        else
            current=A[bucket];
        while(current->next==NULL)
        {
            if (current->next->element=x)
                current->next=current->nexe->next;
        }
        else
            current=current->next;
    }
}

/* закрытое хеширование

const char empty='          ';
const char deleted='**********';
celltype Dictionary[B-1];


void Makenull( Dictionary A)
{
    int i;
    for (i=0; i<(B-1); i++)
        A=NULL;
}

void locate(int x; Dictionary A)
{
    int i, initial;
    initial=h(x);
    i:=0;
      while (i<B)||(A[(initial+1)%B)]==x)||(A[(initial+1)%B)==empty])
    i:=i+1;
      return((initial+i)%B);
}

bool locate1(int x; Dictionary A)
{
    if (A[locate(x)]==x)
        return true;
    else
        return false;
}

void Insert(int x; Dictionary A)
{
    int bucket;
    if (A[locate(x)]==x)
        return;
        bucket:=locate1(x);
       if (A[bucket]==empty)||(A[bucket]==deleted)
           A[bucket]=x;
       else
           printf("error, mest net");
}

void Delete(int x; Dictionary A)
{
    int bucket;
    bucket:=locate(x);
       if [Alocate(x)]==x)
           A[bucket]:=deleted;
}
*/















int main()
{
    makenull(goodguys);
    makenull(badguys);

    switch(ch)
    {
    case 'f': favor(legislator);
        break;
    case 'u': unfavor(legislator);
        break;
    case '?': report(legislator);
        break;
    default: printf("error");
    }

}
11
30 января 2009 года
oxotnik333
2.9K / / 03.08.2007
в С++ уже все есть:
 
Код:
template <
   class Key,
   class Type,
   class Traits = less<Key>,

      class Allocator=allocator<pair <const Key, Type> >
>
class map
37K
30 января 2009 года
gepa
16 / / 22.12.2008
Цитата: oxotnik333
в С++ уже все есть:
 
Код:
template <
   class Key,
   class Type,
   class Traits = less<Key>,

      class Allocator=allocator<pair <const Key, Type> >
>
class map



мне нужно без классов

11
30 января 2009 года
oxotnik333
2.9K / / 03.08.2007
Цитата: gepa
мне нужно без классов


без классов что...? не выделять в отдельный класс словарь?
или ключ и значение не в виде классов загонять в словарь?
во 2-м случае в map можно пихать почти все, в т.ч. и числа и строки и т.п.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог