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

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

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

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

11.11.2012, 12:17. Просмотров 606. Ответов 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++
Кто знает какую нить хорошую литературу по связаным спискам где хорошо и понятно росписано &quot;что где и почему...&quot;.

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Catstail
Модератор
22537 / 10942 / 1774
Регистрация: 12.02.2012
Сообщений: 18,080
11.11.2012, 12:29 #2
Я вижу, твой преподаватель любит Лисп...
VisualNIK
8 / 8 / 1
Регистрация: 29.10.2012
Сообщений: 168
11.11.2012, 12:39  [ТС] #3
Цитата Сообщение от Catstail Посмотреть сообщение
Я вижу, твой преподаватель любит Лисп...
Лисп кстати тоже изучаем но задание то не препод придумывал, задания в файле, там много вариантов для всей группы по каждой из тем, но растолковать их он не в силах, его дело принять и отметить галочками сделанные.
Ещё у меня есть выбор: сделать другую задачу, там короче пишет пользователь многочлен и я должен его считать, привести подобные, и вывести в убывающим порядке степени члены...и вот его типа тоже списком реализовать таким, но эта задача раньше по номеру на десяток, значит вроде полегче должна быть.
Catstail
Модератор
22537 / 10942 / 1774
Регистрация: 12.02.2012
Сообщений: 18,080
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
Модератор
22537 / 10942 / 1774
Регистрация: 12.02.2012
Сообщений: 18,080
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
Модератор
22537 / 10942 / 1774
Регистрация: 12.02.2012
Сообщений: 18,080
11.11.2012, 16:46 #8
Такой вид списков легко "накрывает" и двоичные деревья.
VisualNIK
8 / 8 / 1
Регистрация: 29.10.2012
Сообщений: 168
11.11.2012, 16:56  [ТС] #9
Цитата Сообщение от Catstail Посмотреть сообщение
Такой вид списков легко "накрывает" и двоичные деревья.
Что подразумеваете под "накрывает"??)))) типа включает (и есть)
Catstail
Модератор
22537 / 10942 / 1774
Регистрация: 12.02.2012
Сообщений: 18,080
11.11.2012, 16:57 #10
Подразумевает, что двоичные деревья такими списками легко представляются.
VisualNIK
8 / 8 / 1
Регистрация: 29.10.2012
Сообщений: 168
13.11.2012, 08:13  [ТС] #11
Цитата Сообщение от Catstail Посмотреть сообщение
Список (AD75,(3,(),(7H))) будет иметь структуру:

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

Просто у меня есть вот один препод, он по человеческий все раскидывает на русский язык...С-шник он...а вот тут как я говорил преподаватель не этого предмета
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2012, 08:13
Привет! Вот еще темы с ответами:

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

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

Реализуйте алгоритм сортировки слиянием применительно к односвязным спискам - C++
Реализуйте алгоритм сортировки слиянием применительно к односвязным спискам. Основные шаги алгоритма должна быть идентичным сортировке...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.11.2012, 08:13
Ответ Создать тему
Опции темы

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