Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2014, 19:13   #1
r.ll
Новичок
Джуниор
 
Регистрация: 05.05.2014
Сообщений: 7
Стрелка C++ в C#

Помогите перевести код в С#
Код:
/* listcur.h */
 
typedef struct lelem *lref;               /* Вказівник на елемент списку */
struct lelem {                            /* Елемент списку */
              int d;
              lref next;
              };
typedef struct {                          /* Список */
                lref beg, cur;
               } list;
 
extern void init(list *pl);         /* Почати роботу */
extern int emp_end(list l);         /* Чи порожній залишок списку?*/
extern void first(list *pl);        /* Встати до початку списку */
extern void next(list *pl);         /* Перейти до наступного елемента */
extern int current(list l);         /* Поточний елемент */
extern void insert(list *pl, int n);/* Вставити елемент */
extern void delete(list *pl);       /* Видалити елемент */
 
 
/* listcur.c */
 
#include <stdio.h>
#include <stdlib.h>
#include "listcur.h"
 
lref find_prev(list l)
  {
   lref p;
 
   if (l.beg == l.cur) p=NULL;
   else
     {
      p = l.beg;
      while (p -> next != l.cur)
        p = p ->next;
     }
   return p;
  }
 
      .................
 
void insert(list *pl, int n)
  {
   lref p;
 
   p = (lref) malloc(sizeof(struct lelem));
   p -> d = n;
   p -> next = pl -> cur;
      /* Рис. 10.21 а), в) */
   if(pl -> beg == pl -> cur) pl -> beg = p;    /* Рис. 10.21 б) */
   else find_prev(*pl) -> next = p;             /* Рис. 10.21 г) */
  }
 
void delete(list *pl)
  {
   lref p;
 
   if(pl -> cur == NULL)
     {
      printf("delete: список порожній\n");
      exit(1);
     }
   p = pl -> cur;
   if(pl -> beg == p) pl -> beg = pl -> cur -> next; /* Рис. 10.22 а) */
   else find_prev(*pl) -> next = pl -> cur -> next;   /* Рис. 10.22 в) */
   pl -> cur = pl -> cur -> next;
   free(p);
      /* Рис. 10.22 б), г) */
  }
r.ll вне форума Ответить с цитированием
Старый 07.05.2014, 19:24   #2
casekey
Пользователь
 
Регистрация: 03.11.2010
Сообщений: 95
По умолчанию

casekey вне форума Ответить с цитированием
Старый 07.05.2014, 19:26   #3
r.ll
Новичок
Джуниор
 
Регистрация: 05.05.2014
Сообщений: 7
По умолчанию

Я не знаю C++.
Мне нужно решить задачу, этот код большая часть решения. Но не могу его понять т.к. не знаю C++
r.ll вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц