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

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

Восстановить пароль Регистрация
 
VisualNIK
 Аватар для VisualNIK
8 / 8 / 1
Регистрация: 29.10.2012
Сообщений: 168
11.11.2012, 12:17     Непонятное задание по спискам #1
Здравствуйте. Дали задания. В том числе задача по спискам, под списками понимается 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++ задача по спискам.
C++ Непонятное выражение
Литература по связаным спискам C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
 Аватар для Catstail
21502 / 10255 / 1670
Регистрация: 12.02.2012
Сообщений: 17,141
11.11.2012, 12:29     Непонятное задание по спискам #2
Я вижу, твой преподаватель любит Лисп...
VisualNIK
 Аватар для VisualNIK
8 / 8 / 1
Регистрация: 29.10.2012
Сообщений: 168
11.11.2012, 12:39  [ТС]     Непонятное задание по спискам #3
Цитата Сообщение от Catstail Посмотреть сообщение
Я вижу, твой преподаватель любит Лисп...
Лисп кстати тоже изучаем но задание то не препод придумывал, задания в файле, там много вариантов для всей группы по каждой из тем, но растолковать их он не в силах, его дело принять и отметить галочками сделанные.
Ещё у меня есть выбор: сделать другую задачу, там короче пишет пользователь многочлен и я должен его считать, привести подобные, и вывести в убывающим порядке степени члены...и вот его типа тоже списком реализовать таким, но эта задача раньше по номеру на десяток, значит вроде полегче должна быть.
Catstail
Модератор
 Аватар для Catstail
21502 / 10255 / 1670
Регистрация: 12.02.2012
Сообщений: 17,141
11.11.2012, 12:48     Непонятное задание по спискам #4
Создаешь структуру с двумя полями, содержащими указатели (либо на такую-же структуру, либо на массив char). Тогда список (A B C) будет представляться так:

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

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

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

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

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

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

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

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

Непонятное условие C++
Непонятное поведение C++
C++ Скиньте литературу по спискам в C++

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

Или воспользуйтесь поиском по форуму:
VisualNIK
 Аватар для 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     Непонятное задание по спискам
Ответ Создать тему
Опции темы

Текущее время: 14:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru