Jump to content

Стек с графовой структурой

В информатике стек со структурой графа (GSS) — это ориентированный ациклический граф , где каждый направленный путь представляет собой стек .Стек с графовой структурой — важнейшая часть алгоритма Томиты , где он заменяет обычный стек автомата с выталкиванием вниз . Это позволяет алгоритму кодировать недетерминированный выбор при анализе неоднозначной грамматики , иногда с большей эффективностью.

На следующей диаграмме четыре стопки: {7,3,1,0}, {7,4,1,0}, {7,5,2,0} и {8,6,2,0}. .

Graph-structured_stack_-_Borneq.png

Другой способ симулировать недетерминизм — дублировать стек по мере необходимости. Дублирование будет менее эффективным, поскольку вершины не будут общими. Для этого примера потребуется 16 вершин вместо 9.

Стеки__-_Borneq.dot.png

Операции

[ редактировать ]
GSSnode* GSS::add(GSSnode* prev, int elem){	int prevlevel = prev->level;	assert(levels.size() >= prevlevel + 1);	int level = prevlevel + 1;	if (levels.size() == level)	{		levels.resize(level + 1);	}	GSSnode* node = findElemAtLevel(level, elem);	if (node == nullptr)	{		node = new GSSnode();		node->elem = elem;		node->level = level;				levels[level].push_back(node);	}	node->add(prev);	return node;}
void GSS::remove(GSSnode* node){	if (levels.size() > node->level + 1)		if (findPrevAtLevel(node->level + 1, node)) throw Exception("Can remove only from top.");	for (int i = 0; i < levels[node->level].size(); i++)		if (levels[node->level][i] == node)		{			levels[node->level].erase(levels[node->level].begin() + i);			break;		}	delete node;}
  • Масару Томита. Графоструктурированный стек и синтаксический анализ естественного языка . Ежегодное собрание Ассоциации компьютерной лингвистики, 1988 г. [1]
  • Элизабет Скотт, Адриан Джонстон GLL Анализ gll.pdf
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 2ee2091c4342517ff3187984255be03e__1646973960
URL1:https://arc.ask3.ru/arc/aa/2e/3e/2ee2091c4342517ff3187984255be03e.html
Заголовок, (Title) документа по адресу, URL1:
Graph-structured stack - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)