Пример #1
0
static SReference do_reverse(const SReference &list,
                             const SReference &rest)
{
    if(list.IsEmptyList()) return rest;
    SExpressionCons *dp = list.SimpleCastGetPtr<SExpressionCons>();
    INTELIB_ASSERT(dp, IntelibX_not_a_list(list));
    return do_reverse(dp->Cdr(), SReference(dp->Car(), rest));
}
void do_reverse(char s[], int left, int right){
    int aux;
    if (left < right){
	aux = s[left];
	s[left] = s[right];
	s[right] = aux;
	do_reverse (s, left + 1, right - 1);
    }
}
Node* do_reverse(Node* node, Node** new_head) {
   Node* new_prev;
   if(node->next != nullptr) {
       new_prev = do_reverse(node->next, new_head); 
       new_prev->next = node;
       node->next=nullptr;
   }
   else {
       *new_head = node;
       return node;
   }
   return node;   
}
Пример #4
0
// <list>
void LFunctionReverse::
DoApply(int paramsc, const SReference paramsv[], IntelibContinuation& lf) const
{
    lf.RegularReturn(do_reverse(paramsv[0], *PTheEmptyList));
}
void reverse(char s[]){
    do_reverse(s, 0, strlen(s) - 1);
}
Пример #6
0
int
transcribe_math (xmlNode * node, int action)
{
  StyleType *style;
  xmlNode *child;
  int branchCount = 0;
  if (action == 0)
    {
      insert_translation (ud->mainBrailleTable);
    }
  push_sem_stack (node);
  switch (ud->stack[ud->top])
    {
    case no:
      pop_sem_stack ();
      break;
    case skip:
      pop_sem_stack ();
      return 1;
    case reverse:
      do_reverse (node);
      break;
    case math:
      break;
    default:
      break;
    }
  if ((style = is_style (node)) != NULL)
    start_style (style);
  child = node->children;
  while (child)
    {
      insert_code (node, branchCount);
      branchCount++;
      switch (child->type)
	{
	case XML_ELEMENT_NODE:
	  transcribe_math (child, 1);
	  break;
	case XML_TEXT_NODE:
	  mathText (child, 1);
	  break;
	case XML_CDATA_SECTION_NODE:
	  transcribe_cdataSection (child);
	  break;
	default:
	  break;
	}
      child = child->next;
    }
  insert_code (node, branchCount);
  insert_code (node, -1);
  if (style)
    {
      mathTrans ();
      end_style (style);
    }
  pop_sem_stack ();
  if (action == 0)
    mathTrans ();
  return 1;
}
Node *reverse(Node *head) {
	if(head == nullptr) return nullptr;
    Node* new_head;
    do_reverse(head, &new_head);
    return new_head;
}