Перейти к публикации

To Programmers


Diana

Рекомендованные сообщения

Дианушка, подробнее: если нельзя использовать стандартные функции (а это даже не C++, а plane c) то смотри на ASCII-value.

Алгоритм такой: первым знаком должен быть '(', по нему вызываешь функцию,потом возможны три варианта:

знак ')' - выход из функции.

какой-то digit - передаешь значение дереву.

знак '(' - открываешь в дереве чайлда и вызываешь функцию рекурсивно опять.

Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 35
  • Создано
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

а, со строкой все в порядке.. щас.

Изменено пользователем greco El (история изменений)
Ссылка на комментарий
Поделиться на других сайтах

The core idea, not debugged.

Tree class methods have to be impelmented.

// treeInsert.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <stdio.h>#include <string.h>#include <ctype.h>const char openBrace = '(';const char closeBrace = ')';const int treeDimension = 2; //binaryclass Node{};class Tree{public :  // returns pointer to the new added node.	Node* addNode(Node *nodeOwner, int value)	{  // custon case: nodeOwner == NULL when the node is the very first one.  return NULL;	};	Node* getParentNode(Node* node)	{    return NULL;	}	void deleteNode(Node *node)	{	};};// on input accepts zero-terminated stringchar * getNextCharacter(char* buff){	int index = 0;	while ( 0 != buff[index])	{  if (  	(openBrace == buff[index]) || // ok for bracket  	(closeBrace == buff[index]) ||	// ok for bracket  	(isdigit(buff[index]))	// ok for digits  	)  {  	return buff + index;  }  index++;	}	return NULL;}int main(int argc, char* argv[]){	char test_string[50]="(5(3(2( () () ) ( () )(9( () () )( () )) ) )";	Tree myTree;	//add a root initially:	Node * current = myTree.addNode(NULL, 0);	int nodesCount = 0;	int digit;	char *buffPtr = test_string;	while (1)	{    char* ch = getNextCharacter(buffPtr);  buffPtr = ch;    if (NULL == buffPtr)  {  	break; // string exhausted.  }    char nextChar = *ch;  printf("%c\t", ch[0]);      if (nextChar != closeBrace)  {  	if (nextChar == openBrace)  	{    current = myTree.addNode(current, digit); // add a subnode    digit = 0;        nodesCount++; // nodes count for current tree level        if (nodesCount > (treeDimension-1) )    { // go to the upper level:    	nodesCount = 1;    	current  = myTree.getParentNode(current);    }      	}  	else if ( isdigit(nextChar) )  	{    digit = nextChar; // remember value for further use.  	}  }   buffPtr++;	}	printf("Hello World!\n");	return 0;}
Изменено пользователем greco El (история изменений)
Ссылка на комментарий
Поделиться на других сайтах

Спасибо Греко, я уже начала писать кое что, немного по другому, но думаю мне твой код пригодится как пример, так как это всего лишь часть программы , нужно еще будет вычислять сумму всех нодов и сравнивать с запрашиваевым числом.

Спасибо еще раз.

Ссылка на комментарий
Поделиться на других сайтах

Хочешь - используй. Сумбурно, стиль нечистый, логика непоследовательная. Вряд ли профессор одобрит :)

Ссылка на комментарий
Поделиться на других сайтах

я уже начала по другому, и потом нельзя :no: использовать плагиат. я должна сама писать. :klubnik:

Когда он будет читать код то поймет что одни места написаны мной , а другие кем то другим. Потом будет мне F и запись в Student Honor Code:wallbash:

Ссылка на комментарий
Поделиться на других сайтах


  • Наш выбор

    • Ани - город 1001 церкви
      Самая красивая, самая роскошная, самая богатая… Такими словами можно характеризовать жемчужину Востока - город АНИ, который долгие годы приковывал к себе внимание, благодаря исключительной красоте и величию. Даже сейчас, когда от города остались только руины, он продолжает вызывать восхищение.
      Город Ани расположен на высоком берегу одного из притоков реки Ахурян.
       

       
       
      • 4 ответа
    • В БЕРЛИНЕ БОЛЬШЕ НЕТ АЗЕРБАЙДЖАНА
      Конец азербайджанской истории в Университете им. Гумбольдта: Совет студентов резко раскритиковал кафедру, финансируемую режимом. Кафедра, финансируемая со стороны, будет ликвидирована.
      • 1 ответ
    • Фильм: "Арцах непокорённый. Дадиванк"  Автор фильма, Виктор Коноплёв
      Фильм: "Арцах непокорённый. Дадиванк"
      Автор фильма Виктор Коноплёв.
        • Like
      • 0 ответов
    • В Риме изберут Патриарха Армянской Католической церкви
      В сентябре в Риме пройдет епископальное собрание, в рамках которого планируется избрание Патриарха Армянской Католической церкви.
       
      Об этом сообщает VaticanNews.
       
      Ранее, 22 июня, попытка избрать патриарха провалилась, поскольку ни один из кандидатов не смог набрать две трети голосов, а это одно из требований, избирательного синодального устава восточных церквей.

       
      Отмечается, что новый патриарх заменит Григора Петроса, который скончался в мае 2021 года. С этой целью в Рим приглашены епископы Армянской Католической церкви, служащие в епархиях различных городов мира.
       
      Епископы соберутся в Лионской духовной семинарии в Риме. Выборы начнутся под руководством кардинала Леонардо Сантри 22 сентября.
       
      • 0 ответов
    • History of Modern Iran
      Решил познакомить вас, с интересными материалами специалиста по истории Ирана.
      Уверен, найдете очень много интересного.
       
      Edward Abrahamian, "History of Modern Iran". 
      "В XIX веке европейцы часто описывали Каджарских шахов как типичных "восточных деспотов". Однако на самом деле их деспотизм существовал лишь в виртуальной реальности. 
      Власть шаха была крайне ограниченной из-за отсутствия государственной бюрократии и регулярной армии. Его реальная власть не простиралась далее столицы. Более того, его авторитет практически ничего не значил на местном уровне, пока не получал поддержку региональных вельмож
      • 4 ответа
  • Сейчас в сети   8 пользователей, 0 анонимных, 197 гостей (Полный список)

  • День рождения сегодня

    Нет пользователей для отображения

  • Сейчас в сети

    197 гостей
    OLD MEN Firefly ст. л-т luc w i t o melkum tailor Абрикос
  • Сейчас на странице

    Нет пользователей, просматривающих эту страницу.

  • Сейчас на странице

    • Нет пользователей, просматривающих эту страницу.


×
×
  • Создать...