Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
VisualNIK
8 / 8 / 1
Регистрация: 29.10.2012
Сообщений: 168
#1

Непонятное задание по спискам - C++

11.11.2012, 12:17. Просмотров 605. Ответов 10
Метки нет (Все метки)

Здравствуйте. Дали задания. В том числе задача по спискам, под списками понимается 2 направленный там к примеру на основе структур. Хотя сам я не пойму как вяжется задание с такими списками. Вот собственно само задание:

Назовем (иерархическим) "списком" заключенную в круглые скобки последовательность элементов, разделенных запятыми; элементы списка - это атомы или снова списки:
<список>::=( )  (<элементы>)
<элементы>::=<элемент>  <элемент>,<элементы>
<элемент>::=<атом>  <список>
Под "атомом" понимается последовательность, содержащая от 1 до N букв и цифр, где N - заранее известное натуральное число. Пример подобного списка: (AD75,(3,(),(7H))).
Предложить и описать представление таких списков и определить следу-ющие рекурсивные функции и процедуры для работы с ними:
б) логическую функцию equal(L1,L2), проверяющую на равенство списки L1 и L2; - мой вариант



Может кто решал, кому попадалась. Преподаватель не совсем преподаватель именно нашего предмета (Структуры и алгоритмы). Вот до этого момента все темы сделал, а тут мне требуется идея. Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2012, 12:17     Непонятное задание по спискам
Посмотрите здесь:

Разъяснить задание по спискам - C++
Задание такое: напишите код, который удаляет дубликаты из несортированного связного списка. Не могу понять, дубликаты - это имеется...

Непонятное задание - C++
Помогите пожалуйста решить задачу. Я просто не пойму что мне нужно сделать. Дана декртова система координат. по центру чистый круг,...

Непонятное задание - C++
В университете дали задание,а я не очень понимаю как его делать: С клавиатуры вводится R. Вычислить количество точек с целочисленными...

задача по спискам. - C++
Возникли вопросы с программой, помогите пожалуйста решить: Необходимо построить список из символов вводимого с клавиатуры текста. Вывести...

Скиньте литературу по спискам в C++ - C++
Скиньте литературу по спискам в С++, НО которая расчитана на полного чайника (т.е. где все будет до мелчайших подробностей расписано)....

Литература по связаным спискам - C++
Кто знает какую нить хорошую литературу по связаным спискам где хорошо и понятно росписано &quot;что где и почему...&quot;.

Задача по кольцевым спискам - C++
Необходимо решить задачу: Составить программу, которая в кольцевой список из n элементов добавляет m новых элементов так, чтобы новый...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
22510 / 10915 / 1774
Регистрация: 12.02.2012
Сообщений: 18,061
11.11.2012, 12:29     Непонятное задание по спискам #2
Я вижу, твой преподаватель любит Лисп...
VisualNIK
8 / 8 / 1
Регистрация: 29.10.2012
Сообщений: 168
11.11.2012, 12:39  [ТС]     Непонятное задание по спискам #3
Цитата Сообщение от Catstail Посмотреть сообщение
Я вижу, твой преподаватель любит Лисп...
Лисп кстати тоже изучаем но задание то не препод придумывал, задания в файле, там много вариантов для всей группы по каждой из тем, но растолковать их он не в силах, его дело принять и отметить галочками сделанные.
Ещё у меня есть выбор: сделать другую задачу, там короче пишет пользователь многочлен и я должен его считать, привести подобные, и вывести в убывающим порядке степени члены...и вот его типа тоже списком реализовать таким, но эта задача раньше по номеру на десяток, значит вроде полегче должна быть.
Catstail
Модератор
22510 / 10915 / 1774
Регистрация: 12.02.2012
Сообщений: 18,061
11.11.2012, 12:48     Непонятное задание по спискам #4
Создаешь структуру с двумя полями, содержащими указатели (либо на такую-же структуру, либо на массив char). Тогда список (A B C) будет представляться так:

(адр-A; адр-след)->(адр-B; адр-след)->(адр-С; NULL)

Нужно будет написать парсер для чтения списков и программу печати списка. Само сравнение (EQL) запишется весьма лаконично.

В целом - приличная работа...
VisualNIK
8 / 8 / 1
Регистрация: 29.10.2012
Сообщений: 168
11.11.2012, 13:13  [ТС]     Непонятное задание по спискам #5
Цитата Сообщение от Catstail Посмотреть сообщение
Создаешь структуру с двумя полями, содержащими указатели (либо на такую-же структуру, либо на массив char). Тогда список (A B C) будет представляться так:

(адр-A; адр-след)->(адр-B; адр-след)->(адр-С; NULL)

Нужно будет написать парсер для чтения списков и программу печати списка. Само сравнение (EQL) запишется весьма лаконично.

В целом - приличная работа...
А для списка, который в примере как это будет выглядеть? Сами списки то я знаю как построить...но суть в том, что есть подсписки, и из-за них происходит "углубление"...
Catstail
Модератор
22510 / 10915 / 1774
Регистрация: 12.02.2012
Сообщений: 18,061
11.11.2012, 14:03     Непонятное задание по спискам #6
Список (AD75,(3,(),(7H))) будет иметь структуру:

Плохо "рисуется"... Счас картинку выложу:
Миниатюры
Непонятное задание по спискам  
VisualNIK
8 / 8 / 1
Регистрация: 29.10.2012
Сообщений: 168
11.11.2012, 14:41  [ТС]     Непонятное задание по спискам #7
Цитата Сообщение от Catstail Посмотреть сообщение
Список (AD75,(3,(),(7H))) будет иметь структуру:

Плохо "рисуется"... Счас картинку выложу:
спасибо большое за такие старания!!))) ну тогда в общем-то получается что у меня будет получаться дерево, если вот такие раздвоения пойдут...
Catstail
Модератор
22510 / 10915 / 1774
Регистрация: 12.02.2012
Сообщений: 18,061
11.11.2012, 16:46     Непонятное задание по спискам #8
Такой вид списков легко "накрывает" и двоичные деревья.
VisualNIK
8 / 8 / 1
Регистрация: 29.10.2012
Сообщений: 168
11.11.2012, 16:56  [ТС]     Непонятное задание по спискам #9
Цитата Сообщение от Catstail Посмотреть сообщение
Такой вид списков легко "накрывает" и двоичные деревья.
Что подразумеваете под "накрывает"??)))) типа включает (и есть)
Catstail
Модератор
22510 / 10915 / 1774
Регистрация: 12.02.2012
Сообщений: 18,061
11.11.2012, 16:57     Непонятное задание по спискам #10
Подразумевает, что двоичные деревья такими списками легко представляются.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2012, 08:13     Непонятное задание по спискам
Еще ссылки по теме:

Решение простых задач по массивам и спискам - C++
П.5.16.Правил Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема. ...

Непонятное условие - C++
Problem 3. Given two positive integers a, m. Find the inverse element of a by modulo m, i.e., the solution x for which ax = 1 (mod m) and...

Непонятное поведение - C++
Всем привет! В книге &quot;Прата - Язык программирования C++. Лекции и управжения 2011&quot; нашёл вот такой пример: const free_throws &amp;clone(...

Непонятное выражение - C++
Что тут написано? p = array;

Непонятное условие while - C++
Вообщем попрошу знатоков объяснить мне пару строк ( смотреть комментарии к коду ) #include &lt;iostream&gt; const int ArSize = 10; void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
VisualNIK
8 / 8 / 1
Регистрация: 29.10.2012
Сообщений: 168
13.11.2012, 08:13  [ТС]     Непонятное задание по спискам #11
Цитата Сообщение от Catstail Посмотреть сообщение
Список (AD75,(3,(),(7H))) будет иметь структуру:

Плохо "рисуется"... Счас картинку выложу:
Короче препод мой получается вводить будет 2 списка, если у меня в задании проверка на равнство 2 списков. ни будут помещены в разные программные списки, и там уже поэлементно сравниваться? и от перемены мест элементов в списке не должно нарушится равенство, верно? и ещё вопрос: стоит ли тогда делать указатель на последний элемент списка, или достаточно только указателя на первый?

Просто у меня есть вот один препод, он по человеческий все раскидывает на русский язык...С-шник он...а вот тут как я говорил преподаватель не этого предмета
Yandex
Объявления
13.11.2012, 08:13     Непонятное задание по спискам
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru